play framework java 2.3.7中的全局异常处理
我正在尝试使用Java在Play framework(RESTful)中实现全局异常处理。在搜索时,我发现扩展GlobalSettings
和重写onError
方法应该处理所有错误并给出适当的响应/视图。但在我执行“activator run”的控制台中,我仍然得到异常的丑陋堆栈跟踪。有没有办法停止打印堆栈跟踪,或者Play framework真的在处理异常
@Override
public Promise<Result> onError(RequestHeader request, Throwable t) {
return Promise.<Result>pure(Results.status(200, tr.getLocalizedMessage()));
}
# 1 楼答案
我也有同样的问题。不知何故,日志记录是独立于全局日志中的onError()方法进行的。我用Action composition解决了这个问题
只需使用此新注释对控制器或控制器方法进行注释,所有异常都将被捕获。您可以捕获不同的异常并以不同的方式处理它们。此外,如果您有Ajax调用,则不希望返回/重定向到网站