一、JAVA的異常學習
專升本了,工作辭了,進了一所民辦的院校,有JAVA的課程,但是因為時間沒有合理的安排導致上課沒聽什麼課,考試前又沒複習,作業也沒交兩個,本來做好了補考的打算,但是神奇的是,我JAVA過了,考慮到下個學期有和JAVA相關的課程,在浪了半個月的情況下,這個寒假開始學JAVA,打卡第一天。時間:2022年1月16日
任務待辦:
1、學習JAVA
2、通過3月份的計算機4級考
3、通過3月份的計算機2級考
4、預習下個學期的課程
異常學習所需要的兩個包:
import java.util.InputMismatchException; //此包在這裡的用處是建立一個用來儲存錯誤訊息的字串的引用
import java.util.Scanner; //這個包是Scanner類所用到的包
public class Exception {
public static void main(String[] args) {
int i;
Scanner sc = new Scanner(System.in); //和C語言不同,scanf並沒有被繼承過來,取而代之的是一個Scanner
// 在new物件的時候,其構造方法需要一個引數,這裡是System.in的引數,這是系統輸入的意思,可以理解為讀取使用者從鍵盤的輸入
i = sc.nextInt(); //呼叫方法 nextInt() 代表將輸入的值標記為int型別
System.out.print(i);
//問題:如果我們輸入的值是非數字的值,報錯怎麼辦?
/*
使用try catch語句
語句的執行流程:
1、如果try內的的程式碼出現異常則中斷執行(從出現異常的那行/段程式碼開始)
2、執行對應的catch塊內的程式碼(如果異常的型別是catch括號中的型別)
3、繼續執行try catch語句結構之後的程式碼
程式碼的寫法:
try catch; //自己處理異常
try{
(可能出現異常的程式碼)
}catch(異常的類名1 變數名A){
(如果出現了異常類中的異常,則執行該段的程式碼) //catch可以有多個
}catch(異常的類名2 變數名B){
(如果出現了異常類中的異常,則執行該段的程式碼)
}finally{
(最終肯定必須要執行的程式碼)
}
*/
try
{
i = sc.nextInt();
System.out.print(i);
}
catch(InputMismatchException e) //如果出現了InputMismatchException型別的異常,則執行下面{}中的程式碼
{
System.out.printf("輸入資料不合法");
}
}
}
/*
注意事項:
1、如果catch內的異常類存在子父類的關係,子類應該在前,父類在後
2、如果finally中有return語句,那麼最後返回的結果肯定以finally中的返回值為準
3、如果finally語句中有return,那麼沒有被處理的異常會被吞掉(說實話這三點不是很理解,等有一天理解了再回來填坑吧)
*/
問題:那我們為什麼不能用 if else來處理異常呢?
程式出現的問題是無法通過邏輯判斷來解決的,JAVA提供的異常處理機制可以解決邏輯判斷所無法處理的問題
人類前進的步伐怎能止步於此?
參考文獻:
https://blog.csdn.net/qq_34427165/article/details/83929470
https://blog.csdn.net/wanghuiwei888/article/details/78818203
https://www.bilibili.com/video/BV1ps411F7Sn?p=49