Java連載62-使用throws關鍵字處理異常

​1、處理異常的兩種方式java

1.全部的編譯時異常,要求程序員在編寫程序階段,必須對它進行處理,若是不處理的話,編譯就會沒法經過,處理異常有兩種方法:捕捉和聲明拋出。node

2.捕捉:try.....catch.......git

3.聲明拋出就是方法聲明的位置上使用throws關鍵字拋出異常。程序員

4.全部RuntimeException的子類都是運行時異常,運行時異常程序員在編寫階段不須要對它進行處理。github

5.編譯時異常發生的概率比較高;運行時異常發生的概率比較低。微信

6.全部的Exception的直接子類都是「編譯時異常」。學習

2、處理異常有兩種方式大數據

1.聲明拋出 throwsui

2.捕捉  try.....catch.......spa

如下程序演示第一種方式:聲明拋出,在方法聲明的位置上使用throws關鍵字向上拋出異常。

 

package com.bjpowernode.java_learning;

import java.io.*;

​

public class D62_1_ {

  public static void main(String[] args) throws FileNotFoundException{

    //建立一個文件輸入流,讀取文件

    //java編譯器是如何知道如下的代碼在執行過程可能存在異常

    //java編譯器是如何知道這個異常發生的概率比較高呢?

    //java編譯器不是那麼智能,由於FileInputStream這個構造方法在聲明的位置上使用了

    //throws FileNotFoundException;

    //FileInputStream fls = new FileInputStream("C:\\Users\\lenovo1\\Desktop\\微信公衆號運營-Java\\Java連載51-super關鍵字.docx");

//    try{

    m1();

      //使用throws處理異常是否是真正處理異常而是推卸責任

      //誰調用就會跑給誰

      //上面的m1方法若是出現了異常,由於採用的是向上拋出,給了JVM,JVM遇到這個異常

      //就會退出JVM,下面的這個代碼不會執行

//    }catch(FileNotFoundException e) {

//      System.out.println("出現了異常");

//    }

  }

  public static void m1() throws FileNotFoundException{

    m2();

  }

  public static void m2() throws FileNotFoundException{

    m3();

  }

  public static void m3() throws FileNotFoundException{

    //FileNotFound構造方法聲明位置上使用了throws(向上拋出)

    new FileInputStream("E:\\04.image\\timg.jpgu");

  }

}

異常出現了就一層一層往上拋。

再看一下使用try....catch......來處理這些異常

 

  public static void main(String[] args) {

    //建立一個文件輸入流,讀取文件

    //java編譯器是如何知道如下的代碼在執行過程可能存在異常

    //java編譯器是如何知道這個異常發生的概率比較高呢?

    //java編譯器不是那麼智能,由於FileInputStream這個構造方法在聲明的位置上使用了

    //throws FileNotFoundException;

    //FileInputStream fls = new FileInputStream("C:\\Users\\lenovo1\\Desktop\\微信公衆號運營-Java\\Java連載51-super關鍵字.docx");

    try{

      m1();

      //使用throws處理異常是否是真正處理異常而是推卸責任

      //誰調用就會跑給誰

      //上面的m1方法若是出現了異常,由於採用的是向上拋出,給了JVM,JVM遇到這個異常

      //就會退出JVM,下面的這個代碼不會執行

    }catch(FileNotFoundException e) {

      System.out.println("出現了異常");

    }

  }

3、源碼:

D62_1_ThrowsOfException.java

https://github.com/ruigege66/Java/blob/master/D62_1_ThrowsOfException.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索