![](/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.