【发布时间】:2019-08-09 20:47:42
【问题描述】:
假设我想显示我自己的 404 和 500 页面,到目前为止我发现了 2 种可能性:
1:使用cherrypy.config.update
def error_page_404(status, message, traceback, version):
return ('Error 404 Page not found')
def error_page_500(status, message, traceback, version):
return ('Error:')
cherrypy.config.update({'error_page.404': error_page_404, 'error_page.500': error_page_500})
- 使用
_cp_config:
from cherrypy import _cperror
def handle_error():
cherrypy.response.status = 500
cherrypy.log("handle_error() called. Alarm!", "WEBAPP")
cherrypy.response.body = ['Sorry, an error occured. The admin has been notified']
error = _cperror.format_exc()
def error_page(status, message, traceback, version):
cherrypy.log("error_page() called. Probably not very important.", "WEBAPP")
return "Sorry, an error occured."
class Root:
_cp_config = {
'error_page.default': error_page,
'request.error_response': handle_error
}
但是有什么区别或建议更适合使用吗?
【问题讨论】:
-
error_page.default是万能的,如果错误代码没有自己的处理程序,则使用它。 -
老实说,我不太明白这个问题的动机。
-
@webKnjaZ ,我有 2 个选项,他们似乎做了类似的事情 - 我的动机是了解根本区别是什么以及处理它的标准方法是什么。毕竟这是一个学习和提问的平台,所以即使这可能是一个愚蠢的问题 - 我认为它是有目的的。
-
在下面查看我的答案。