使用Java中的break/continue退出try块

Pho*_*nix 3 java

在Java文档中,我正在读这个:finally块总是在try块退出时执行.这确保即使发生意外异常也会执行finally块.但最终不仅仅是异常处理有用 - 它允许程序员避免因返回,继续或中断而意外绕过清理代码.

你何时会在休息时退出试用区?我能想到的唯一场景是你在try块中运行一个循环而你是使用break/continue退出但是这应该只是退出循环而不是try块本身吗?

Ste*_*n C 5

你何时会在休息时退出试用区?

当你有一个try 内部循环; 例如

 for (Cat cat : cattery) {
     try {
          cat.removeFromCage();
          cat.healthCheck();
          if (cat.isPedigree()) {
              continue;
          }
          cat.spey();
     } finally {
          cat.putBackInCage();
     }
 }
Run Code Online (Sandbox Code Playgroud)

好的...所以有更优雅的方式来编写"代码"......但这只是一个例子.

我能想到的唯一场景是你在try块中运行一个循环而你是使用break/continue退出但是这应该只是退出循环而不是try块本身吗?

那是对的.


FWIW,任何涉及突破try块或从catch或者最后或任何其他"边缘情况"事物返回的代码都应该简化.JLS明确指出了在这些场景中发生的事情......但这并不意味着你应该在真实的程序中使用它们.