更改 Eclipse 中未经处理的异常自动生成的捕获代码?

如果我在Java中有未处理的异常,Eclipse会向我提出两个选项:(1)添加抛出声明和(2)用try/catch包围。

如果我选择(2),它会添加一个代码

try {
   myfunction();
} catch (MyUnhandledException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

我想将其更改为

try {
   myfunction();
} catch (MyUnhandledException e) {
    throw new RuntimeException(e);
}

这可能吗?

更新

为什么这么爱改变话题的人???

如果异常被捕获并打印出来,也不再需要捕获它。如果我忘记错误地处理异常,我喜欢我的应用程序崩溃。所以,我喜欢默认地重新抛出它。


答案 1

是的,您可以更改 Eclipse 添加的默认代码。

  1. 在“首选项”中,导航到 Java>代码样式>代码模板
  2. 在“代码”下,选择“捕获块正文”。
  3. 按“编辑”按钮更改代码。完成后,按“确定”按钮。

请考虑在默认捕获块中添加 TODO 注释。例如,默认值包括:

     // ${todo} Auto-generated catch block

答案 2

就个人而言,无论实际检查的异常类型如何,我都使用通用成语,您可以让Eclipse将其用作模板:

try {
 ...
} 
catch (RuntimeException e) { throw e; } 
catch (Exception e) { throw new RuntimeException(e); }

关键是要包装整个代码块,而不是单独包装可能引发异常的每一行。该块可能会引发任意数量的已检查和未选中异常,这将允许未选中的异常不受伤害地通过,并且已检查的异常将被包装。


推荐