簡體   English   中英

+e 與 e 在 throw Exception 中的區別

[英]Difference between +e vs , e in throw Exception

在Java中,以下2個語句有什么區別:

throw new Exception ("msg" + e);

throw new Exception ("msg", e);

我知道這兩個都是可能的。 他們在幕后的工作方式有什么不同,哪種做法更好?

第一個創建一個新的異常,消息是msg的字符串連接和e的字符串表示。 為此,將使用etoString方法。 這有效地給出了原始異常的消息並將其與字符串msg連接起來。

第二個創建一個只有消息msg的新異常,並將原始異常添加為原因。 因此,可以使用來自原始異常的更多信息,例如堆棧跟蹤。

throw new Exception ("msg" + e); 拋出一個新的Exception一條消息,這是一個串聯"msg"e.toString()失去e在這個過程中堆棧跟蹤。

throw new Exception ("msg", e); 拋出一個帶有消息"msg"e作為原因的新Exception

throw new Exception ("msg" + e); 拋出一個新的Exception ,其中包含一條由"msg"e.toString()串聯而成的消息,在此過程中丟失e stacktrace。

throw new Exception ("msg", e); 拋出一個新的Exception ,消息為"msg" ,原因是e

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM