Java培訓簡述如何處理沒有被捕獲的異常

原始碼時代發表於2018-07-05
如何處理沒有被捕獲的異常,文章中會有程式碼列出供大家詳細瞭解。對Java感興趣想要學好技術的小夥伴們隨著小編一起來看一下吧。


在我們的程式中並不是所有的異常都被捕獲,有些是因為我們不想捕獲,因為我們認為那些異常沒必要捕獲,而有些是我們無法捕獲的,因為我們不能確定它們會在什麼地方出現,例如像NullPointerException,ClassCastException,IndexOutOfBoundsException這些RuntimeException。我們也許可以在所有它們有可能發生的地方去捕獲它們,但這確實是很壞的解決方案。但在有些情況下,我們又必須在一些未捕獲的異常發生時做一些事情,像釋放資源、讓程式離開錯誤狀態等等。
這裡透過ThreadGroup提供的一個方法,解決了這個問題,讓我們的程式可以變得更健壯。ThreadGroup提供一個uncaughtException回撥方法,當執行緒組中的執行緒有未被捕獲的異常發生時,JVM就會去呼叫這個方法。
public class ApplicationLoader extends ThreadGroup {
     private ApplicationLoader() {
        super("ApplicationLoader");
     }
     public static void main(String args[]) {
        Runnable addStarter = new Runnable() {
           public void run() {
              //在這裡呼叫我們自己的程式的入口函式
              //MyApplication.main(args);
           }
        };
     //把我們自己的程式當作這個執行緒組的一個執行緒來執行           
     new Thread(new ApplicationLoader(), addStarter).start();
  }
/*當有未被捕獲的異常發生導致執行緒停止時,這個方法就會被虛擬機器呼叫,我們只要在自己的ThreadGroup子類中override這個方法,在其中對異常進行相應的處理*/
public void uncaughtException(Thread threadf, Throwable e) {
    //Handle the Exception
  }
}
原始碼時代是專業的Java培訓機構,不僅有專業的老師和與時俱進的課程體系,還有大量的Java線上教程供學員觀看學習,喜歡Java的小夥伴快快行動吧。想要了解更多內容的小夥伴可以登入官網諮詢。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31544234/viewspace-2157365/,如需轉載,請註明出處,否則將追究法律責任。

相關文章