<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)航:
     
    主站蜘蛛池模板: 免费的黄色网页在线免费观看| 亚洲成人免费网站| 成人毛片18女人毛片免费96| 亚洲精品天天影视综合网| 四虎国产成人永久精品免费| 亚洲日本一区二区| 亚洲免费视频观看| 在线观看午夜亚洲一区| 亚洲欧美自偷自拍另类视| 永久免费看mv网站入口| 亚洲精品综合一二三区在线| 久久免费美女视频| 亚洲精品动漫人成3d在线| 一区二区三区免费视频网站| 亚洲精品自产拍在线观看| 久久香蕉国产线看免费| 亚洲制服丝袜第一页| 在线观看无码的免费网站| 黄色免费网址在线观看| 日本亚洲视频在线| 999在线视频精品免费播放观看 | 在线观看成人免费视频| 美女18一级毛片免费看| 亚洲日本va在线视频观看| 亚洲视频免费在线看| 亚洲AV无码国产一区二区三区 | 国产激情免费视频在线观看| 久久综合亚洲色一区二区三区| 视频免费1区二区三区| 免费看的一级毛片| 一区二区视频在线免费观看| 亚洲国产精品久久久久婷婷老年| 日韩精品无码区免费专区 | 日韩亚洲国产二区| 久久免费精品视频| 亚洲av无码一区二区三区天堂| 亚洲一区二区三区在线视频 | 国产在线观看免费视频软件| 国产亚洲成人久久| 国产精品美女久久久免费| 亚洲精品永久www忘忧草|