23
A
回答
49
異常具有message
和cause
的屬性。信息是一種描述,或多或少地準確地告訴讀者,出了什麼問題。 cause
是不同的:它是,如果可用,另一個(嵌套)Throwable
。響應@djangofans評論 -
catch(IOException e) {
throw new ApplicationException("Failed on reading file soandso", e);
// ^Message ^Cause
}
編輯:
的概念,如果我們使用自定義異常喜歡這個經常被使用。
標準是嵌套表達式(原因)也是用它的堆棧跟蹤打印的。
運行這個小應用
public class Exceptions {
public static void main(String[] args) {
Exception r = new RuntimeException("Some message");
throw new RuntimeException("Some other message", r);
}
}
將輸出
Exception in thread "main" java.lang.RuntimeException: Some other message
at Exceptions.main(Exceptions.java:4)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.RuntimeException: Some message
at Exceptions.main(Exceptions.java:3)
... 5 more
兩個消息都包括在內。
2
class Exception
has constructors that takes cause
Throwable。您需要調用這些構造函數,或者爲調用這些超級構造函數的自定義異常類提供構造函數。
2
的getCause - 如果原因不存在或未知返回此拋出或空的原因。 (原因是導致此拋出對象拋出的對象。)
閱讀Java文檔:getCause
13
原因通常是在異常的構造方法設置。看看public Exception(String message, Throwable cause)。
如果未在構造函數中設置,則可以調用initCause()。
相關問題
- 1. 替代Java ME中的異常原因
- 2. addfooterview原因異常
- 3. 異常原因而在JSP
- 4. 多個Java根本原因異常
- 5. 連接重置異常,未知原因
- 6. WCF FaultException異常原因
- 7. 顯示異常的原因
- 8. 原因此異常WCF
- 9. 中斷的異常次數原因
- 10. 試圖找到Java異常的原因,文件在哪裏?
- 11. 爲什麼在這裏拋出異常異常......原因?
- 12. 設置Viewbox.Child原因ArgumentException
- 13. 致命異常無法理解原因
- 14. ClassNotFoundException的原因爲檢查異常
- 15. 確定valueForKeyPath異常的原因
- 16. 原因的Neo4j IndexOutOfBoundsException異常的()
- 17. XCode:異常。如何檢測原因?
- 18. JAVA:IO異常:原因流關閉
- 19. 繪畫併發修改異常原因?
- 20. 空指針異常的原因
- 21. 捕獲是異常原因的UnknownHostException
- 22. 這是什麼原因爲stackoverflow異常?
- 23. StackOverFlow - 異常?我找不到原因:-(
- 24. CursorLoader和acquireUnstableProvider的異常原因?
- 25. Classformat異常的原因是什麼?
- 26. System.Globalization.DateTimeFormatInfo.calendar原因拋出一個異常
- 27. java程序拋出異常的原因ServiceException(javax.xml.rpc.ServiceException)?
- 28. 這個java異常'java.lang.ArrayIndexOutOfBoundsException?'的原因是什麼
- 29. 這個java MySQL異常的原因是什麼(和處理)?
- 30. 如何檢查是否異常的原因的異常類型
是否有可能顯示一個異常,同時顯示額外原因的附加堆棧跟蹤?這不就是Vik真的在問什麼嗎?他並沒有問:顯示消息的原因,他問:顯示異常的原因。 – djangofan 2017-01-15 01:27:31
@djangofan - 我在回答中添加了一些行。希望能幫助到你。 – 2017-01-16 21:46:43