报告 finally 块内的 throw 语句。 虽然偶尔是有意为之,但此类 throw 语句可能隐藏从 trycatch 块抛出的异常,并使调试过程变得复杂。

示例:


  class Fascinating {
    void doTask(Task t) {
      try {
        t.activity();
      } finally {
        if (!t.finish()) {
          throw new IllegalStateException();
        }
      }
    }
  }

使用在可能抛出已声明异常的每一处发出警告选项,可以在调用声明了异常的方法时也发出警告。