抛出异常中+e与,e的区别

5kgi1eie  于 2021-07-04  发布在  Java
关注(0)|答案(2)|浏览(446)

在java中,以下两种语句的区别是什么:

throw new Exception ("msg" + e);

throw new Exception ("msg", e);

我知道两者都有可能。他们在幕后的工作方式有什么不同吗?使用哪种方法更好?

goqiplq2

goqiplq21#

throw new Exception ("msg" + e); 抛出一个新的 Exception 一条信息是 "msg" 以及 e.toString() ,失败 e 进程中的stacktrace。 throw new Exception ("msg", e); 抛出一个新的 Exception 带着信息 "msg" 以及 e 作为原因。

l2osamch

l2osamch2#

第一个异常创建一个新的异常,其消息是 msg 以及 e . 为了这个 toString 方法 e 将使用。这有效地给出了原始异常的消息,并将其与字符串连接起来 msg .
第二个创建了一个新的异常,只包含消息 msg 并添加原始异常作为原因。因此,可以获得来自原始异常的更多信息,例如堆栈跟踪。

相关问题