3

eWhile catching exceptions is this necessary to check if the error message is not null to avoid null pointer exception? Another words, is the if (e!=null) part needed? or e is always not null?

 try {
     ...

  } catch(Exception e) {
     if (e != null) {
        System.err.println("Error: " + e.getMessage());
     }

  }
4

4 に答える 4

9

スローされるものはすべて、のサブクラスである必要がありThrowable、キャッチはのサブクラスであるもののみをキャッチしますException。したがって、投げたりキャッチしたりすることはできませnullん。したがって、ヌル性をチェックする必要はありません。nullを含む変数を使用throw nullまたはスローすると、がスローされますNullPointerException

于 2012-10-12T22:08:57.350 に答える
3

例外がnullになることはありません。ただし、例外の一部のプロパティはnullになる可能性があります。

于 2012-10-12T22:09:02.280 に答える
3

enull になることはありません。あなたが(完全に合法である)場合でも、 Javaはそれをここの仕様で詳述さthrow nullれているようにに変換しますNullPointerException

于 2012-10-12T22:13:14.923 に答える
1

The caught exception will never be null as it is been already caught. So the check:

if (e != null) { }

Is absolutely not necessary.

于 2012-10-12T22:12:10.410 に答える