[英]Catch unchecked exceptions in java
我正在編寫應用程序,需要捕獲所有現有異常,包括已檢查和未檢查的異常。 是否有可能在應用程序終止之前捕獲未經檢查的異常並將其寫入文件中?
Error
和Exception
擴展Throwable
:
public static void main(String args[]) {
try {
new Test().test();
} catch (Throwable t) {
t.printStackTrace(System.err);
}
}
從@ u6f6o的觀點出發-您僅應main
要這樣做,因為某些Throwable
s(例如OutOfMemoryError
)表示您的JVM可能處於非常不穩定的狀態。
你可以用
Thread.setDefaultUncaughtExceptionHandler
請參閱: http : //www.tutorialspoint.com/java/lang/thread_setdefaultuncaughtexceptionhandler.htm或http://www.javamex.com/tutorials/exceptions/exceptions_uncaught_handler.shtml
在Java中捕獲未經檢查的異常可能比在運行時異常中看起來要棘手得多。 但是,請記住,您不必捕獲運行時/未經檢查的異常。 僅檢查異常。 這是一個不好的做法,但是實際上所有它們都extend Throwable
,使用catch Throwable
可能是實現此目的的一種方法。 但是,您可能想看看以下文檔http://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html
如果要將它們寫入Android中的文件中,則必須在catch塊中,使用Android的FileWriter API之一獲取異常消息並將該消息(字符串)寫入文件中。 但是請記住,catch bock應該捕獲Throwable
類型的所有Exception,盡管這可能非常丑陋,因為它將涵蓋Java中大多數未經檢查的異常。
使用Exception
類來捕獲您的異常(此類是父級),並將其放入存儲它們的數據結構中,然后將它們寫入File。
http://docs.oracle.com/javase/7/docs/api/index.html?java/lang/Exception.html
http://docs.oracle.com/javase/7/docs/api/index.html?java/io/OutputStreamWriter.html
您可以在catch塊中捕獲未檢查的異常。
喜歡
try {
int i = 9 / 0;
} catch (ArithmeticException d) {
d.printStackTrace();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.