我正在使用Play框架(2.5)进行Java开发。在那里,我们配置路由,并为这些路由触发相关的控制器方法。
我有一个问题是,在这些控制器方法签名中包含异常抛出是否可以,或者我们必须在方法体内捕获它们?
EX:
public Result getPurchasedStatisticsOutOfAllPriceChecked(String from, String to) throws InvalidParameterException, SalesServiceException {
RequestParams requestParams = new RequestParams(messageProvider);
requestParams.setDateRangeStart(from);
requestParams.setDateRangeEnd(to);
return ok(processInfluenceOnSales(influenceOnOverallSales));
}
答案 0 :(得分:1)
我认为更好的方法是在Action方法中处理这些异常,而不是抛出。通过这种方式,您可以使用相关的错误消息回复客户端,否则最终会出现
500内部服务器错误
并且您的堆栈跟踪看起来像跟随play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception
,然后是相应的异常跟踪。