gpt4 book ai didi

playframework - 我应该捕获异常并返回 error() 还是只是在 Play 框架中从我的 Controller 中抛出异常

转载 作者:行者123 更新时间:2023-12-04 05:56:10 26 4
gpt4 key购买 nike

我和我的团队对 Play 来说相对较新!框架 (1.2.5),我们已经创建了相当多的代码,它们在我们的 Controller 中看起来与此类似。

public static void list() {
try {
List<ActionModel> actions = ActionModel.loadActions();
render( actions );
} catch ( Exception ex ) {
error();
}
}

异常来自我们的模型层,我们在其中有一些自定义代码,而不是通常的 Play 框架模型。我的问题是,可以跳过 try catch 并直接将 Exception 从 Controller 方法中抛出吗?这实际上是一种更正确的处理方法吗?

最佳答案

您的代码实际上什么都不做,因为 PlayFramework 会做几乎完全相同的事情,即捕获任何未捕获的异常并调用 error() 以输出 500 内部错误。

在我的项目中,我们通过向开发人员发送电子邮件来报告任何意外错误,即 Exceptions,基本上一些代码如下:

public class ErrorHelper extends Controller{
@Catch(Exception.class)
public static void handleException(final Exception e) {
String errorCode = ErrorHelper.generateErrorCode();
renderArgs.put("errorCode", errorCode);
new Job() {
@Override
public void doJob() throws Exception {
Mail.reportError(errorCode, e);
}
}.now();
}
}

然后在你的 Controller 中你需要 @With(ErrorHelper.class) .

您也可以自定义您的 500.html通过向最终用户显示错误代码并要求他们使用它来调用技术支持,如果没有异常,技术支持应该已经收到电子邮件。

关于playframework - 我应该捕获异常并返回 error() 还是只是在 Play 框架中从我的 Controller 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com