java - 将所有内容都包含在一个 try-catch 中是个好主意吗

标签 java try-catch

<分区>

我正在使用 java,我代码中的所有异常都派生自 java.lang.exception。将所有内容包含在一个 try-catch 中是个好主意吗?为每个困难的功能添加 try-catch 是个好主意吗?

因为我想让我的代码以惰性方式运行得更好,这意味着没有异常会导致我的程序崩溃,例如,捕获 IndexOutOfBoundsException、ArrayIndexOutOfBoundsException、SQLGrammarException ......

以下是我的代码:

public MyResult function1(){
    MyResult myResult = new MyResult();
    try{
        //all codes here
    }catch(Exception e){
        LOGGER.error(e);
        myResult.setException(e);
    }finally{
        return myResult;
    }
}

//more same functions using same try-catch here

public MyResult functionN(){
    MyResult myResult = new MyResult();
    try{
        //all codes here
    }catch(Exception e){
        LOGGER.error(e);
        myResult.setException(e);
    }finally{
        return myResult;
    }
}

最佳答案

all exceptions in my codes are derived from java.lang.Exception

这可能不是一个好主意,因为有一类异常需要从 java.lang.RuntimeException 中定义 - 即指示编程错误的异常,即需要更改的情况程序以便修复。

Is it a good idea to contain everything in one try-catch?

不,不是。您应该根据需要添加 try/catch,将它们放在可能抛出它们的代码块周围,并且仅在您的代码准备好处理某些异常的情况下有意义的方式。

Is it a good idea to add try-catch for every difficult function?

您不应该将 try/catch 放在不知道如何处理异常的方法中。更好的方法是让异常沿调用链上升,直到它命中准备处理异常的方法。

在某些情况下,此类方法位于调用链的最顶端,在这种情况下,该方法通常会记录并退出或返回错误状态。

关于java - 将所有内容都包含在一个 try-catch 中是个好主意吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34752408/

相关文章:

Java Try Catch block

java - 使用输入文件创建一个对象并将该对象添加到一个数组中,并让它打印出该数组的信息

java - 在字符串中查找子字符串的位置(不是 indexOf)

java - 在具有不同 Controller 的多个端口上运行 Spring Boot 应用程序

Python 在抛出错误之前到达局部变量

performance - 在 julia 中 try catch 或类型转换性能 -(Julia 73 秒,Python 0.5 秒)

java - 我应该在哪里存储第三方库以包含在 IntelliJ IDEA 项目中?

java - Couchbase - 通过 Java SDK 批量插入 - 如何使用 Akka 进行扩展?

python mysql 写入错误

java - 使用用户输入在 Java 中尝试/捕获循环