使用这样的代码
public static void main(String[] args) {
Exception one = new Exception("my cause");
System.out.println("A) " + one.getMessage());
System.out.println();
Exception two = new Exception(one);
System.out.println("B) " + two.getMessage());
System.out.println("C) " + two.getCause().getMessage());
System.out.println();
Exception three = new Exception("my message", one);
System.out.println("D) " + three.getMessage());
System.out.println("E) " + three.getCause().getMessage());
System.out.println();
Exception fourth = new Exception(null, one);
System.out.println("F) " + fourth.getMessage());
System.out.println("G) " + fourth.getCause().getMessage());
}
输出是这个
A) my cause
B) java.lang.Exception: my cause
C) my cause
D) my message
E) my cause
F) null
G) my cause
B
查看和之间的区别F
在这两种情况下,我都没有提供消息,但不同之处在于,在这种B
情况下,null
值不是强制的。
似乎对于这种B
情况,当未指定消息时,该getMessage()
方法提供了格式
className: cause.getMessage()
但我除了有一个null
值外(就这种F
情况而言)。
如果我在已创建的异常上调用仅提供而不提供的异常,有没有办法获得null
价值(例如) ?F
getMessage
cause
message