<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 11, comments - 29, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

    Java 異常處理

    Posted on 2005-10-13 14:15 -=Kinohl=- 閱讀(563) 評論(0)  編輯  收藏 所屬分類: 編程語言
    Java異常處理機(jī)制


    keywords:

    Exception,Method Inovation Stack,

    難度:初學(xué),易



    異常類的繼承
    Java異常是java程序運(yùn)行時遇到非正常情況而創(chuàng)建的一種對象,她包裝了異常的信息。
    Java異常的頂級類就是java.lang.Throwable。其結(jié)構(gòu)如下:

    JavaExceptionClass
    其中

    Error ---- JVM的錯誤,也就是程序本身無法恢復(fù)的嚴(yán)重錯誤。

    Exception--被程序捕獲并處理的異常。



    JVM的方法調(diào)用堆棧
    大家對于Debug都很喜歡,因?yàn)槊慨?dāng)有異常出現(xiàn)的時候,她會告訴你哪里出了異常調(diào)用到底是什么。這又是如何實(shí)現(xiàn)的?

    在JVM中使用了Method Inovation Stack機(jī)制來跟蹤每一個線程中一系列的方法調(diào)用過程。并保存在Stack里邊。
    Stack的頂端也就是當(dāng)前正在處理的方法。在Debug的時候,JVM會暫停被debug的線程,克隆她的Stack,然后顯示出來供

    developer操作,這一點(diǎn)用Eclipse的人很有體驗(yàn)吧。



    一旦異常發(fā)生,JVM首先從當(dāng)前的方法開始尋找處理的try/Catch,找不到,就回朔到stack的下一個,也就是parent調(diào)用

    方法。舉例如下:

    public void child(int a)throws UserException{
      
    if (a < 0
         
    throw new UserException();
    }


    父方法如下:

    public void parent(int a){
      
    try{
          a 
    = 1;
          method(a);
    //throw Exception
      }
    catch(UserException ue){
          System.out.println(
    "I get it from Child")!
          ue.printExceptionStack();
      }

    }


    就這樣,異常被抓住了。當(dāng)然,如果在child方法里邊就捕獲,parent就不用這么“累”了。

    其實(shí)最累的還是JVM,她要對異常捕獲進(jìn)行查找,如果一直都找不到,就把異常直接拋給用戶,那么在終端上就能看

    到了。如果是拋出異常的程序是主程,還沒有被捕獲,那就“死翹翹”了。要注意!



    異常處理對性能的影響

    從上邊的原理就能知道,不捕捉異常、捕捉異常的位置不合適、都會導(dǎo)致JVM性能降低。



    (PS:先記到這里,繼續(xù)上班。)










    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲乱妇熟女爽到高潮的片| 我要看WWW免费看插插视频| 色网站在线免费观看| 亚洲天堂电影在线观看| 亚洲免费观看视频| 亚洲国产精品国产自在在线| 午夜一区二区免费视频| 免费观看无遮挡www的小视频| 中国videos性高清免费| 西西人体大胆免费视频| 亚洲一区二区三区丝袜| 亚洲精品伊人久久久久| 亚洲综合亚洲国产尤物| 亚洲国产精品无码中文字| 亚洲午夜av影院| 亚洲AV无码一区二三区| 日日AV拍夜夜添久久免费| 免费做爰猛烈吃奶摸视频在线观看| 久久精品免费视频观看| 成全动漫视频在线观看免费高清版下载| 狼色精品人妻在线视频免费| 亚洲av日韩专区在线观看| 亚洲男同gay片| 亚洲AV无码AV吞精久久| 久久精品国产亚洲AV| 亚洲国产日韩a在线播放| 亚洲av无码有乱码在线观看| 亚洲精品久久无码av片俺去也| 亚洲中文无码卡通动漫野外 | 免费污视频在线观看| 在线免费视频你懂的| 中文字幕免费观看全部电影| 久久久精品视频免费观看 | 中文字幕亚洲一区二区三区| 精品亚洲视频在线观看| 爱情岛论坛网亚洲品质自拍| 亚洲日韩激情无码一区| 久久精品7亚洲午夜a| 精品亚洲成AV人在线观看| 91亚洲自偷在线观看国产馆| 亚洲av无码电影网|