1.異常處理
基本介紹
異常處理就是當異常發生的時候 對異常處理的方式
異常處理方式
try-catch-finally
程序員在代碼中捕獲發生的異常 自行處理
throws
將發生的異常拋出 交給調用者(方法)處理 最頂級的處理者是JVM
示意圖
2.try-catch方式處理異常說明
Java提供try和catch塊來處理異常 try塊用于包含可能出錯的代碼 catch塊用于處理try塊中發生的異常 可以根據需要在程序中有多個try catch塊
基本語法
try {可疑代碼將異常生成對應的異常對象 傳遞給catch塊
} catch (異常) {對異常處理
}
//如果沒有finally 語法可以通過
注意事項
如果異常發生?則異常發生后面的代碼不會執行 直接進入到catch塊
如果異常沒有發生 則順序執行try代碼塊 不會進入到catch
如果希望不管是否發生異常 都執行某段代碼(比如關閉連接 釋放資源等)則使用finally{}
可以有多個catch語句 捕獲不同的異常(進行不同的業務處理)要求父類異常在后 子類異常在前 比如(Exception在后 NullPointerException在前)如果發生異常 只會匹配一個catch
可以進行try-finally配合使用 這種做法相當于沒有捕獲異常 因此程序會崩掉 應用場景:執行一段代碼 不管是否發生異常 都必須執行某個業務邏輯
3.小結
如果沒有出現異常,則執行try塊中所有語句,不執行catch塊中語句,如果有finally,最后還需要執行finally里面的語句
如果出現異常,則try塊中異常發生后,try塊剩下的語句不再執行。將執行catch塊中的語句,如果有finally,最后還需要執行finally里面的語句
4.練習
package com.logic.try_;import java.util.Scanner;/*** @author logic* @version 1.0*/
//如果用戶輸入的不是一個整數,就提示他反復輸入,直到輸入一個整數為止
public class Homework01 {public static void main(String[] args) {/*1.創建Scanner對象2.使用無限循環 去接收一個數3.將該輸入的值 轉成一個int4.如果在轉換時 拋出異常 說明輸入的內容不是一個可以轉成int的內容5.如果沒有拋出異常 break */Scanner scanner = new Scanner(System.in);int n1 = 0;String inputStr = "";while (true) {System.out.print("請輸入一個整數: ");inputStr = scanner.next();System.out.println("輸入完畢...");try {n1 = Integer.parseInt(inputStr);break;} catch (NumberFormatException e) {System.out.println("輸入有誤...");}}System.out.println("你輸入的值是: " + n1);}
}