GithubHelp home page GithubHelp logo

Comments (12)

qicosmos avatar qicosmos commented on August 16, 2024

可以加error_handler,它的参数和default_handler一样能否满足需求?

from cinatra.

qicosmos avatar qicosmos commented on August 16, 2024

另外,server发生错误是指什么错误,是http handler里发生异常了吗

from cinatra.

CsVeryLoveXieWenLi avatar CsVeryLoveXieWenLi commented on August 16, 2024

另外,server发生错误是指什么错误,是http handler里发生异常了吗

是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。

from cinatra.

CsVeryLoveXieWenLi avatar CsVeryLoveXieWenLi commented on August 16, 2024

可以加error_handler,它的参数和default_handler一样能否满足需求?

我认为没有问题,可以满足需求。但是这样发生错误的原因就无法获取了,或许应该在coro_http_request &, coro_http_response &后面添加一个用来传递错误的参数?

from cinatra.

qicosmos avatar qicosmos commented on August 16, 2024

另外,server发生错误是指什么错误,是http handler里发生异常了吗

是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。

另外,server发生错误是指什么错误,是http handler里发生异常了吗

是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。

handler 异常会被捕获,不会发生崩溃。
你测试发现有崩溃?

from cinatra.

qicosmos avatar qicosmos commented on August 16, 2024

可以加error_handler,它的参数和default_handler一样能否满足需求?

我认为没有问题,可以满足需求。但是这样发生错误的原因就无法获取了,或许应该在coro_http_request &, coro_http_response &后面添加一个用来传递错误的参数?

可以加error_handler,它的参数和default_handler一样能否满足需求?

我认为没有问题,可以满足需求。但是这样发生错误的原因就无法获取了,或许应该在coro_http_request &, coro_http_response &后面添加一个用来传递错误的参数?

现在如果发生异常会返回service_unavailable, 但没有把异常信息返回给前端。

  void route(auto handler, auto& req, auto& resp, std::string_view key) {
    try {
      (*handler)(req, resp);
    } catch (const std::exception& e) {
      CINATRA_LOG_WARNING << "exception in business function, reason: "
                          << e.what();
      resp.set_status(status_type::service_unavailable);
    } catch (...) {
      CINATRA_LOG_WARNING << "unknown exception in business function";
      resp.set_status(status_type::service_unavailable);
    }
  }

似乎把异常信息的内容也返回回去就好了,这些信息由框架返回回去就好了,似乎不用再额外加error handler?

from cinatra.

CsVeryLoveXieWenLi avatar CsVeryLoveXieWenLi commented on August 16, 2024

另外,server发生错误是指什么错误,是http handler里发生异常了吗

是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。

另外,server发生错误是指什么错误,是http handler里发生异常了吗

是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。

handler 异常会被捕获,不会发生崩溃。 你测试发现有崩溃?

没有发现。

from cinatra.

CsVeryLoveXieWenLi avatar CsVeryLoveXieWenLi commented on August 16, 2024

可以加error_handler,它的参数和default_handler一样能否满足需求?

我认为没有问题,可以满足需求。但是这样发生错误的原因就无法获取了,或许应该在coro_http_request &, coro_http_response &后面添加一个用来传递错误的参数?

可以加error_handler,它的参数和default_handler一样能否满足需求?

我认为没有问题,可以满足需求。但是这样发生错误的原因就无法获取了,或许应该在coro_http_request &, coro_http_response &后面添加一个用来传递错误的参数?

现在如果发生异常会返回service_unavailable, 但没有把异常信息返回给前端。

  void route(auto handler, auto& req, auto& resp, std::string_view key) {
    try {
      (*handler)(req, resp);
    } catch (const std::exception& e) {
      CINATRA_LOG_WARNING << "exception in business function, reason: "
                          << e.what();
      resp.set_status(status_type::service_unavailable);
    } catch (...) {
      CINATRA_LOG_WARNING << "unknown exception in business function";
      resp.set_status(status_type::service_unavailable);
    }
  }

似乎把异常信息的内容也返回回去就好了,这些信息由框架返回回去就好了,似乎不用再额外加error handler?

我个人希望添加,保持统一的返回格式,当然也可以仅仅非200之类的正常状态码,代表本次请求是错误的,不过还是希望统一返回格式,比如API之类的服务。

from cinatra.

qicosmos avatar qicosmos commented on August 16, 2024

这样吧,如果设置了err handler,则回调给用户,没有则走现在的方式把异常信息response到前端。

from cinatra.

CsVeryLoveXieWenLi avatar CsVeryLoveXieWenLi commented on August 16, 2024

这样吧,如果设置了err handler,则回调给用户,没有则走现在的方式把异常信息response到前端。

我认为没有问题,那么传递错误的参数,加吗?

from cinatra.

CsVeryLoveXieWenLi avatar CsVeryLoveXieWenLi commented on August 16, 2024

如果更新了请告知我,我把issues关闭。

from cinatra.

qicosmos avatar qicosmos commented on August 16, 2024

好的,晚点加。

from cinatra.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.