Throwable getCause返回null

时间:2014-04-07 06:01:16

标签: java throwable

我发现Throwable错误。

catch (Throwable t){    
    System.out.println(t.getCause().getMessage());
}

当我在一行[{1}}上放置断点并将鼠标悬停在({Eclipse)System.out.变量上时,Eclipse会向我显示原因:t

但是当我发布断点时,我java.lang.NoClassDefFoundError: myclass获得了null

为什么会这样?我怎样才能获得原因字符串。

更新

如果我抓住

,也会发生同样的情况
t.getCause()

1 个答案:

答案 0 :(得分:5)

答案在docs - Throwable#getCause

  

如果原因是,则返回此throwable的原因或 null   不存在或未知。 (原因是造成这种情况的抛弃物   扔掉扔掉。)

所以当你这样做时:

t.getCause().getMessage()

就像写作:

null.getMessage()

当然会导致NullPointerException

您可以这样做:

catch (NoClassDefFoundError e){
   System.out.println(e.getMessage);
}