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

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

從上面代碼中,在main()方法后面加throws關(guān)鍵字使用拋出異常,它的最終是由虛擬機(jī)來(lái)處理這個(gè)異常的。在main()方法中調(diào)用div()方法,定義實(shí)現(xiàn)方法兩個(gè)整數(shù)相除,使用throws關(guān)鍵字聲明拋出異常。除了已定義的異常,開(kāi)發(fā)人員還可以根據(jù)情況自定義異常類(lèi),定義時(shí)只要讓該類(lèi)繼承Exception。
三、拋出異常
1.使用throw關(guān)鍵字用在方法中聲明拋出異常的實(shí)例對(duì)象。
2.拋出異常首先要產(chǎn)生異常對(duì)象,手動(dòng)拋出的異常對(duì)象,一定是Throwable或其子類(lèi)的實(shí)例。它的語(yǔ)法語(yǔ)句如下:
throw 異常對(duì)象;3.所有的異常類(lèi)都有兩個(gè)構(gòu)造方法,以Exception類(lèi)為例,生成Exception類(lèi)的異常對(duì)象可以使用下面兩個(gè)構(gòu)造方法之一:
public Exception( );public Exception(String s );
四、總結(jié)
本文主要介紹了try...catch和finally、throws關(guān)鍵字、拋出異常。
try...catch和finally介紹了使用多重catch語(yǔ)句格式、finally關(guān)鍵字的使用語(yǔ)法格式,通過(guò)try...catch后面加個(gè)finally關(guān)鍵字例子幫助理解是如何使用的。
使用throws關(guān)鍵字的子句標(biāo)記方法的聲明,表示這個(gè)方法不對(duì)產(chǎn)生的異常進(jìn)行處理,而是向調(diào)用它的方法拋出這個(gè)異常。拋出異常使用throw關(guān)鍵字用在方法中聲明拋出異常的實(shí)例對(duì)象。
我是Java進(jìn)階者,希望大家通過(guò)本文的學(xué)習(xí),對(duì)你有所幫助!歡迎大家加我微信,有問(wèn)題可以隨時(shí)幫大家解決噢,交個(gè)朋友也好哇~
-------------------?End?-------------------
往期精彩文章推薦:
一篇文章帶你了解Java繼承那些事兒
一篇文章教會(huì)你使用Java中的super關(guān)鍵字基本用法
一篇文章帶你了解Java中的static關(guān)鍵字和靜態(tài)變量、靜態(tài)方法
一篇文章帶你了解Java類(lèi)的設(shè)計(jì)和封裝及類(lèi)成員的訪問(wèn)控制

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Java學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
