【问题标题】:Why should I use nested try-catch blocks in Java?为什么我应该在 Java 中使用嵌套的 try-catch 块?
【发布时间】:2022-08-16 23:38:51
【问题描述】:

我真的不明白使用嵌套的 try-catch 块。它们很难阅读,有时也不是很简单。例如:

try {
 // do something
}
catch ( [exception_1] e) {}
catch ( [exception_2] e) {}
catch ( [exception_3] e) {}

上面的代码更具可读性,我可以理解它的作用——如果发生异常,它可以由 catch 块之一处理。 但如果我使用嵌套形式:

try {
   try {
      try {
         // Do something for try-block 3
      }
      catch ( [exception_1] except_1) {};
      // Do something for try-block 2
   }
   catch ( [exception_2] except_2) {};
   // Do something for try-block 1
}
catch ( [exception_3] except_3) {}

上面的代码是一团糟!但它实现了与第一个代码完全相同的效果。还是没有?帮我解决这个问题:(

    标签: java exception


    【解决方案1】:

    嗯,这取决于你如何编写代码。例如,如果将使用某些代码...

    try {
       try {
          -->in here<--
          try {
             // Do something for try-block 3
          }
          catch ( [exception_1] except_1) {};
          // Do something for try-block 2
       }
       catch ( [exception_2] except_2) {};
       // Do something for try-block 1
    }
    catch ( [exception_3] except_3) {}
    

    那么如果引发了 exception_1,则不会被捕获。如果一切都将在第三次尝试中使用,那么没有区别。

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2011-02-13
      • 1970-01-01
      相关资源
      最近更新 更多