2

私のコードでは、ソナーでコードを分析しているときに、「スタック トレースを保持する」というルール違反が発生しました。

try {
  doSomething();
} catch(IllegalStateException e) {
   try {
      doAnotherThing();
  } catch(IOException e1) {
      throw new MyException(e1.getCause());
  }
  throw new MyException(e.getCause());
}

この場合、スタック トレースを保持するにはどうすればよいでしょうか。

4

2 に答える 2

2

それぞれ MyException(e) と MyException(e1) をスローする必要があります。

于 2013-09-11T05:41:06.153 に答える
1

変化する

throw new MyException(exception.getCause());

throw new MyException(exception);

これにより、完全なスタック トレースが保持されます。

于 2013-09-11T05:45:48.523 に答える