环绕"throw new Exception()"尝试捕捉


throw new Exception();

如果将此语句放在方法中,则应在方法名称后添加throws Exception或者,您可以使用 try-catch 将语句括起来

try {
    throw new Exception();
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

但这里有什么意义呢?编译器允许它,所以我只想知道它是否是故意设计的。我很好奇。

实际上,这在某些情况下很有用。

比如说,你想执行一系列任务,如果其中任何一个失败,你想中止序列并执行其他任务。

确实,您可以使用一系列 if 语句执行相同的操作,但这提供了另一种方法。

try{
// do task 1
// if failed, throw new Exception("Task 1 Failed");
// do task 2
// if failed, throw new Exception("Task 2 Failed");
// do task 3
// if failed, throw new Exception("Task 3 Failed");
...
}catch(Exception e){
 // System.err.println(e.getMessage());
 // do somthing else
}

最新更新