在java中,以下两种语句的区别是什么:
throw new Exception ("msg" + e);
和
throw new Exception ("msg", e);
我知道两者都有可能。他们在幕后的工作方式有什么不同吗?使用哪种方法更好?
goqiplq21#
throw new Exception ("msg" + e); 抛出一个新的 Exception 一条信息是 "msg" 以及 e.toString() ,失败 e 进程中的stacktrace。 throw new Exception ("msg", e); 抛出一个新的 Exception 带着信息 "msg" 以及 e 作为原因。
Exception
"msg"
e.toString()
e
l2osamch2#
第一个异常创建一个新的异常,其消息是 msg 以及 e . 为了这个 toString 方法 e 将使用。这有效地给出了原始异常的消息,并将其与字符串连接起来 msg .第二个创建了一个新的异常,只包含消息 msg 并添加原始异常作为原因。因此,可以获得来自原始异常的更多信息,例如堆栈跟踪。
msg
toString
2条答案
按热度按时间goqiplq21#
throw new Exception ("msg" + e);
抛出一个新的Exception
一条信息是"msg"
以及e.toString()
,失败e
进程中的stacktrace。throw new Exception ("msg", e);
抛出一个新的Exception
带着信息"msg"
以及e
作为原因。l2osamch2#
第一个异常创建一个新的异常,其消息是
msg
以及e
. 为了这个toString
方法e
将使用。这有效地给出了原始异常的消息,并将其与字符串连接起来msg
.第二个创建了一个新的异常,只包含消息
msg
并添加原始异常作为原因。因此,可以获得来自原始异常的更多信息,例如堆栈跟踪。