Java基礎入門之異常的那些事兒
前言
大家好,我是Java進階者。這篇文章我們主要介紹Java基礎入門之try...catch、finally、throws關鍵字和拋出異常知識,一起來學習下吧!
一、try...catch和finally
(一)使用多重catch 語句
1.有些時候,當單個代碼段可能會引起多個異常,為了處理這種狀況,可以使用兩個或多個catch子句,每個子句捕獲一種類型的異常。
2.使用多重catch語句格式
- try
- {
- 可能發(fā)生異常的代碼塊;
- }
- catch(異常類型1 異常對象名1)
- {
- 異常處理代碼塊1;
- }
- catch(異常類型2 異常對象名2)
- {
- 異常處理代碼塊2;
- }
- …
- catch(異常類型n 異常對象名n)
- {
- 異常處理代碼塊n;
- }
(二)finally關鍵字
1.如果我們希望有些語句無論程序是否發(fā)生異常,都要執(zhí)行我們就可以使用try...catch后面加個finally關鍵字。
2.finally關鍵字的使用語法格式
- try
- {
- 可能發(fā)生異常的代碼塊;
- }
- catch(異常類型 異常對象名)
- {
- 異常處理代碼塊;
- }
- finally
- {
- 不管有沒有產(chǎn)生異常都要執(zhí)行的代碼;
- }
3.try...catch后面加個finally關鍵字的使用例子
- public class p35 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定義一個try...catch語句捕獲異常
- try{
- int result=div(6,0);//調用div()方法
- System.out.println(result);
- }catch(Exception e){//捕獲并處理異常
- System.out.println("捕獲異常信息為"+e.getMessage());
- return;//用于結束當前語句
- }finally{
- System.out.println("finally代碼塊...");
- }
- System.out.println("程序繼續(xù)向下執(zhí)行");
- }
- //此方法實現(xiàn)兩個整數(shù)相除
- public static int div(int a,int b){
- int result=a/b;//定義一個int類型變量result,保存兩個數(shù)相除結果
- return result;//結果返回值
- }
- }
運行的結果是:

從上面代碼中,try的大括號里面是可能發(fā)生異常代碼塊,catch是捕獲并處理異常,在catch代碼塊中加了一個return語句,主要是結束當前語句。我們發(fā)現(xiàn)System.out.println("程序繼續(xù)向下執(zhí)行")這個輸出語句不被執(zhí)行,然而finally關鍵字代碼塊中是被執(zhí)行了,沒有被return語句影響到,不管這個程序是否發(fā)生異常這個finally代碼塊的語句都會被執(zhí)行。
二、throws關鍵字
1.使用throws關鍵字的子句標記方法的聲明,表示這個方法不對產(chǎn)生的異常進行處理,而是向調用它的方法拋出這個異常。
2.thorws關鍵字拋出異常的語法格式:
- [修飾符] 返回類型 方法名(參數(shù)1,參數(shù)2,……)throws 異常列表
- {
- ……
- }
3.thorws關鍵字使用例子
- public class p35 {
- public static void main(String[] args) throws Exception {
- // TODO Auto-generated method stub
- int result=div(16,2);//調用div()方法
- System.out.println(result);
- }
- //此方法實現(xiàn)兩個整數(shù)相除,使用throws關鍵字聲明拋出異常
- public static int div(int a,int b) throws Exception{
- int result=a/b;//定義一個int類型變量result,保存兩個數(shù)相除結果
- return result;//結果返回值
- }
- }
運行的結果是:

從上面代碼中,在main()方法后面加throws關鍵字使用拋出異常,它的最終是由虛擬機來處理這個異常的。在main()方法中調用div()方法,定義實現(xiàn)方法兩個整數(shù)相除,使用throws關鍵字聲明拋出異常。除了已定義的異常,開發(fā)人員還可以根據(jù)情況自定義異常類,定義時只要讓該類繼承Exception。
三、拋出異常
1.使用throw關鍵字用在方法中聲明拋出異常的實例對象。
2.拋出異常首先要產(chǎn)生異常對象,手動拋出的異常對象,一定是Throwable或其子類的實例。它的語法語句如下:
- throw 異常對象;
3.所有的異常類都有兩個構造方法,以Exception類為例,生成Exception類的異常對象可以使用下面兩個構造方法之一:
- public Exception( );
- public Exception(String s );
四、總結
本文主要介紹了try...catch和finally、throws關鍵字、拋出異常。
try...catch和finally介紹了使用多重catch語句格式、finally關鍵字的使用語法格式,通過try...catch后面加個finally關鍵字例子幫助理解是如何使用的。
使用throws關鍵字的子句標記方法的聲明,表示這個方法不對產(chǎn)生的異常進行處理,而是向調用它的方法拋出這個異常。拋出異常使用throw關鍵字用在方法中聲明拋出異常的實例對象。
我是Java進階者,希望大家通過本文的學習,對你有所幫助!