国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

處理Java程序中沒有被捕獲的異常

2019-11-18 13:13:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  在我們的程序中并不是所有的異常都被捕捉,有些是因?yàn)槲覀儾幌氩蹲?,因?yàn)槲覀冋J(rèn)為那些異常沒必要捕捉
  
  而有些是我們無(wú)法捕捉的,因?yàn)槲覀儾荒艽_定它們會(huì)在什么地方出現(xiàn),例如像NullPointerException,ClassCastException,IndexOutOfBoundsException這些RuntimeException。我們也許可以在所有它們有可能發(fā)生的地方去捕捉它們,但這確實(shí)是很壞的解決方案。但在有些情況下,我們又必須在一些未捕捉的異常發(fā)生時(shí)做一些事情,像釋放資源、讓程序離開錯(cuò)誤狀態(tài)等等。
  
  這里通過ThreadGroup提供的一個(gè)方法,解決了這個(gè)問題,讓我們的程序可以變得更健壯。ThreadGroup提供一個(gè)uncaughtException回調(diào)方法,當(dāng)線程組中的線程有未被捕捉的異常發(fā)生時(shí),JVM就會(huì)去調(diào)用這個(gè)方法。
  
  public class applicationLoader extends ThreadGroup {
  
     PRivate ApplicationLoader() {
  
      super("ApplicationLoader");
  
     }
  
     public static void main(String args[]) {
  
      Runnable addStarter = new Runnable() {
  
        public void run() {
  
         //在這里調(diào)用我們自己的程序的入口函數(shù)
  
         //MyApplication.main(args);
  
        }
  
      };
  
     //把我們自己的程序當(dāng)作這個(gè)線程組的一個(gè)線程來(lái)運(yùn)行      
  
     new Thread(new ApplicationLoader(), addStarter).start();
  
   }
  
    /*當(dāng)有未被捕捉的異常發(fā)生導(dǎo)致線程停止時(shí),這個(gè)方法就會(huì)被虛擬機(jī)調(diào)用,我們只要在自己的ThreadGroup子類中override這個(gè)方法,在其中對(duì)異常進(jìn)行相應(yīng)的處理*/
  
   public void uncaughtException(Thread threadf, Throwable e) {
  
    //Handle the Exception
  
   }
  
  }

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 布拖县| 皋兰县| 乃东县| 乌兰县| 弥勒县| 屏东市| 宁都县| 乾安县| 邓州市| 芮城县| 甘谷县| 大关县| 汝城县| 庐江县| 盐城市| 金门县| 岢岚县| 平南县| 大宁县| 三门峡市| 玉山县| 古丈县| 张北县| 西贡区| 安阳县| 桐梓县| 扶风县| 沙田区| 清远市| 威远县| 彭山县| 鹿邑县| 靖安县| 青河县| 湟源县| 德州市| 社会| 肇州县| 建阳市| 通榆县| 运城市|