<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Head First Java學習:第十一章-異常處理

      第十一章 異常處理

      1、方法可以抓住其他方法所拋出的異常;異常總是丟回給調用方

      • 有風險、會拋出異常的程序代碼:

              負責聲明異常;創建Exception對象并拋出

      • 調用該方法的程序代碼:

              在try中調用程序代碼;在catch中捕獲異常,并使用printStackTrace()獲取有用信息。

       

      舉例:

      // 有風險的代碼
      public void takeTest() throws BadException{
          if (abandonAllHope){
              throw new BadException();
          }
      }

      // 調用上述風險的程序代碼
      public void crossFingers(){
          try{
              anObject.takeTest();
          }catch (BadException ex){
              System.out.println("有異常");
              ex.printStackTrace();
          }
      }

       

      2、異常的分類

      Exception:程序需要捕捉處理的異常,分為checked exception(檢查異常)和unchecked exception(不檢查異常)。

       

      checked exception:方法在申明過程中證明了有檢查異常拋出,調用該方法的時候,一定要處理(捕獲或者向上拋出),否則無法編譯通過。比如IOException。

      如果我們希望我們的方法調用者,明確處理一些特殊情況的時候,就應該使用checked exception。

       

      unchecked exception:一般是運行期異常,繼承自RuntimeException。編寫代碼時不需要顯示捕獲。但是如果不捕獲,運行期發生異常就會中斷程序的執行。比如空指針異常、數組越界異常,這些都是可以避免的。一般是程序邏輯導致的異常。

       

      3、異常的關鍵字:

      throws 申明一個方法可能拋出的各種異常

      throw 明確拋出一個異常,如 throw new BadException();

      try 用來指定一塊預防所有異常的程序

      catch 指定你想要捕獲的異常類型

      finally 確保一段代碼不管發生什么異常狀態都要被執行

       

      4、正確處理異常

      方式一:自己明確知道如何處理。自己處理。

      方式二:不知道如何處理。向上拋,交給調用者處理。

       

      5、try、catch、finally的執行順序

      如果try塊失敗了:拋出異常,流程會馬上轉移到 catch塊。catch塊完成會轉移到finally塊。當finally執行完成時,就會繼續執行其余部分。

       

      如果try塊成功了:流程會跳過catch塊并移動到finally塊。當finally執行完成時,就會繼續執行其余部分。

       

      如果try或catch塊有return指令:finally還是會執行!流程會跳到finally,然后再回到return指令。

       

      6、處理多重異常

      舉例:

      public class Laundry{

      public void doLaundry() throws PantsException,LingerieException{

          // 有可能拋出兩個異常的程序代碼

      }

      }

       

      public class Foo{

      public void go(){

          try{

              Laundry.do Laundry();

          }catch(PantsException pex){

              // 恢復程序代碼

          } catch(LingerieException Lin){

              // 恢復程序代碼

          }

      }

      }

       

      7、異常也有多態

      以為異常是對象,所以異常能夠以多態的方式來引用。

      比如IOException的對象,可以賦值給Exception的引用。

      好處:

      不用聲明每個可能拋出的異常,可以只聲明父類。

      對于catch,可以不對每個可能的異常處理,只要一個或少數幾個catch可以處理所有異常。

       

      8、不想處理異常,那就 ducking

      舉例:

      public class Washer {
          Laundry laundry = new Laundry();
          public void foo() throws ClothingException{
              laundry.doLaunrdy();
          }

          public static void main(String[] args) throws ClothingException{
              Washer a = new Washer();
              a.foo();
          }
      }

       

      調用方也聲明相同異常,就會duck掉(踢皮球)。

      posted @ 2022-05-11 20:09  hqq的進階日記  閱讀(49)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品视频中文字幕| 国产老熟女视频一区二区| 久久香蕉国产线看观看猫咪av| 丁香五月婷激情综合第九色 | 日韩幕无线码一区中文| 亚洲午夜精品久久久久久浪潮| 欧美精品久久天天躁| 久久国产精品伊人青青草| 国产精品99久久免费| 国产精品日本一区二区不卡视频| 日韩剧情片电影网站| 亚洲国产精品久久无人区| 精品无码三级在线观看视频| 毛片av在线尤物一区二区 | 在线天堂中文www官网| 天堂网av一区二区三区| 日韩午夜一区二区福利视频| 午夜成人精品福利网站在线观看| 激情综合五月网| 最新精品露脸国产在线| 无码AV无码天堂资源网影音先锋 | 小鲜肉自慰网站| 色综合久久一区二区三区| 一本av高清一区二区三区| 免费观看又色又爽又黄的崩锅| 亚洲一二区在线视频播放| 91中文字幕一区二区| 无码日韩精品一区二区人妻| 亚洲国产成人精品女久久| 午夜欧美日韩在线视频播放 | 性色av无码久久一区二区三区| 久久久久久曰本av免费免费| 日本国产精品第一页久久| 国产无人区码一区二区| 国产性生大片免费观看性| 华人在线亚洲欧美精品| 三级三级三级A级全黄| 国产精品 亚洲一区二区三区 | 日本无遮挡吸乳呻吟视频| 国产成人精品一区二三区| 一区二区三区四区五区色|