-
Notifications
You must be signed in to change notification settings - Fork 375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[需求] 处理程序相关 #589
Comments
可以加error_handler,它的参数和default_handler一样能否满足需求? |
另外,server发生错误是指什么错误,是http handler里发生异常了吗 |
是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。 |
我认为没有问题,可以满足需求。但是这样发生错误的原因就无法获取了,或许应该在coro_http_request &, coro_http_response &后面添加一个用来传递错误的参数? |
handler 异常会被捕获,不会发生崩溃。 |
现在如果发生异常会返回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之类的服务。 |
这样吧,如果设置了err handler,则回调给用户,没有则走现在的方式把异常信息response到前端。 |
我认为没有问题,那么传递错误的参数,加吗? |
如果更新了请告知我,我把issues关闭。 |
好的,晚点加。 |
我查了一下,没找到设置,发生错误以后handler的接口。serv处理程序在发生错误时,会直接停止运行并响应503状态码和信息。
有set_default_handler设置没有匹配时的默认handler,能否添加一个set_error_handler之类的接口?发生错误时立即停止,并调用该handler。
The text was updated successfully, but these errors were encountered: