![](/img/trans.png)
[英]What is the difference between throw e and throw new Exception(e)?
[英]Difference between +e vs , e in throw Exception
在Java中,以下2個語句有什么區別:
throw new Exception ("msg" + e);
和
throw new Exception ("msg", e);
我知道這兩個都是可能的。 他們在幕后的工作方式有什么不同,哪種做法更好?
第一個創建一個新的異常,消息是msg
的字符串連接和e
的字符串表示。 為此,將使用e
的toString
方法。 這有效地給出了原始異常的消息並將其與字符串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.