【发布时间】:2017-06-01 07:57:25
【问题描述】:
使用这样的代码
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 的情况一样)。
如果我在仅提供cause 而不是message 而创建的异常上调用getMessage,是否有办法获得null 值(如F)?
【问题讨论】:
标签: java exception null getmessage