自定义出错页面¶
用户可以根据错误代码或多或少知道发生了什么错误。
以下出错代码是用户常见的,即使应用正常也会出现这些出错代码:
- 404 Not Found
- 这是一个古老的“朋友,你使用了一个错误的 URL ”信息。这个信息出现得如此频繁,以至于连刚上网的新手都知道 404 代表:该死的,我要看的东西不见了。一个好的做法是确保 404 页面上有一些真正有用的东西,至少要有一个返回首页的链接。
- 403 Forbidden
- 如果你的网站上有某种权限控制,那么当用户访问未获授权内容时应当发送403 代码。因此请确保当用户尝试访问未获授权内容时得到正确的反馈。
- 410 Gone
- 你知道 “404 Not Found” 有一个名叫 “410 Gone” 的兄弟吗?很少有人使用这个代码。如果资源以前曾经存在过,但是现在已经被删除了,那么就应该使用410 代码,而不是 404 。如果你不是在数据库中把文档永久地删除,而只是给文档打了一个删除标记,那么请为用户考虑,应当使用 410 代码,并显示信息告知用户要找的东西已经删除。
- 500 Internal Server Error
- 这个代码通常表示程序出错或服务器过载。强烈建议把这个页面弄得友好一点,因为你的应用 迟早 会出现故障的(参见 应用错误处理 )。
出错处理器¶
出错处理器使用 装饰器或者 方法注册。出错处理器可以为一个状态码(如 404 )注册,也可以为一个异常类注册。
响应的代码不会被设置为处理器的代码。因此请确保在从处理器返回响应时,提供恰当的 HTTP 状态代码。
以下是一个处理 “404 Page Not Found” 异常的示例:
使用 工厂模式 的话: