Comments (12)
可以加error_handler,它的参数和default_handler一样能否满足需求?
from cinatra.
另外,server发生错误是指什么错误,是http handler里发生异常了吗
from cinatra.
另外,server发生错误是指什么错误,是http handler里发生异常了吗
是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。
from cinatra.
可以加error_handler,它的参数和default_handler一样能否满足需求?
我认为没有问题,可以满足需求。但是这样发生错误的原因就无法获取了,或许应该在coro_http_request &, coro_http_response &后面添加一个用来传递错误的参数?
from cinatra.
另外,server发生错误是指什么错误,是http handler里发生异常了吗
是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。
另外,server发生错误是指什么错误,是http handler里发生异常了吗
是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。
handler 异常会被捕获,不会发生崩溃。
你测试发现有崩溃?
from cinatra.
可以加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.
另外,server发生错误是指什么错误,是http handler里发生异常了吗
是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。
另外,server发生错误是指什么错误,是http handler里发生异常了吗
是的,处理请求时发生错误,然后会自行响应50状态码。而不是整个服务崩溃。
handler 异常会被捕获,不会发生崩溃。 你测试发现有崩溃?
没有发现。
from cinatra.
可以加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.
这样吧,如果设置了err handler,则回调给用户,没有则走现在的方式把异常信息response到前端。
from cinatra.
这样吧,如果设置了err handler,则回调给用户,没有则走现在的方式把异常信息response到前端。
我认为没有问题,那么传递错误的参数,加吗?
from cinatra.
如果更新了请告知我,我把issues关闭。
from cinatra.
好的,晚点加。
from cinatra.
Related Issues (20)
- refactor cinatra server to support c++20 coroutine HOT 4
- 编译报错,‘_M_set_length’ is not a member of ‘std::string’ HOT 5
- 如何使用已有的io_context运行cinatra HOT 1
- 如何获取coro_http_client调接口 耗时 HOT 3
- Highly concurrent downloading of 2m js files will increase memory usage HOT 1
- websocket,1分钟没有消息交互,服务端会主动把链接掐断 HOT 2
- Windows visit Chinese filename not found
- 请问下,考虑支持unix套接字吗. HOT 10
- 是否可以让server对象的listen函数支持设置连接队列的长度? HOT 6
- bug: gcc resize_and_overwrite 導致髒數據的問題 HOT 21
- fatal error: 'asio/dispatch.hpp' file not found HOT 2
- https question HOT 18
- Failed to connect websocket with `Connection: upgrade` HOT 3
- client URL 检测 的奇怪 bug HOT 7
- 上传二进制文件无法使用 HOT 2
- async_download 没有写入内容到文件 HOT 5
- 请问下,当链接断开时,如何获取到具体原因? HOT 3
- 【错误与需求】Nginx与chunked模式 HOT 16
- Access-Control-Allow-Origin
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cinatra.