在Play中,分为2种错误:客户端错误和服务端错误。客户端错误包括不规范的请求头数据,不支持的content type,找不到静态页面等等,服务端错误时会返回一个错误的页面。
自定义错误处理
可以在app目录下创建一个名为ErrorHandler
的类,实现HttpErrorHandler
,注意,必须没有包名,并且类名必须为ErrorHandler
,如
1 | class ErrorHandler extends HttpErrorHandler { |
访问http://localhost:9000/custom 时,会返回“A server error occurred: RuntimeException”文本信息。
也可以在其他包中定义其他类名,并且在application.conf中指定,如
1 | play.http.errorHandler = "error.CustomErrorHandler" |
继承默认错误处理
在Play的开发环境中,如果发生服务端错误,会定位出发生错误的代码块,并且提示出来,如果想要使用这种默认的处理机制,又想添加一些自定义的错误处理,则可以继承默认的处理类。
默认的处理类为DefaultHttpErrorHandler
, 可以重写这个类的某些方法,处理一些自定义的方法,如
1 | import javax.inject.Inject |