這篇文章主要介紹java出現異常的處理方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
異常的處理分為消極的處理(自己處理不了,就往調用它的地方上拋throws,異常沒有解決,只是拋出)和積極處理(異常捕獲,捕捉異常通過try-catch語句或者try-catch-finally語句實現)。
消極的處理:
語法:
public void m1() throws 異常類名1,異常類名2{}允許編譯通過。
當上拋的異常為非運行(已檢查)時異常時,調用此方法的調用者必須處理。
當上拋的異常為運行(未檢查)時異常時,可以處理可以不處理。
積極的處理:(異常捕獲)
將異常直接捕獲,并且做出處理。
語法:
try{
//異常代碼
}catch(異常類名 引用名){
//當異常產生執行的代碼
}try 后的catch代碼塊只能匹配成功一個。
catch后聲明的異常為父類時,它能夠捕捉的異常為它本身+所有子類異常(多態的體現)。
注意:catch代碼塊捕獲異常時,子類異常必須定義在父類異常前面,否則會編譯出錯。
(視頻教程推薦:java視頻教程)
finally代碼塊:一定會執行此代碼塊中的代碼,常用來關閉資源。
try{
}catch(){
}finally{
//無論是否產生異常,一定會去執行的代碼
}注意:finally代碼塊中不要定義return語句。
舉例:
package work;
import java.io.EOFException;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Scanner;
/**
* @author 超偉
* @date 2019年5月13日
* @version 1.0.0
*/
public class t4 {
public static void main(String[] args) {
System.out.println("main1");
int n;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
ma(n);
System.out.println("main2");
}
public static void ma(int n){
try {
System.out.println("m1");
mb(n);
System.out.println("m2");
} catch (EOFException e) {
//e.printStackTrace();
System.out.println("EOFException ");
} catch (IOException e) {
System.out.println("IOException e111");
}catch (SQLException e) {
System.out.println("SQLException");
}catch (Exception e) {
System.out.println("Exception");
}finally{
System.out.println("in finally");
}
}
public static void mb(int n) throws Exception {
System.out.println("mb1");
if (n==1) {
throw new EOFException();
}
if (n==2) {
throw new FileNotFoundException();
}
if (n==3) {
throw new SQLException();
}
if (n==4) {
throw new NullPointerException();
}
System.out.println("mb2");
}
}
程序運行結果為:
main1
1
m1
mb1
EOFException
in finally
main2以上是java出現異常的處理方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。