溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java如何處理異常

發(fā)布時(shí)間:2021-11-24 10:23:33 來(lái)源:億速云 閱讀:142 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了java如何處理異常,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1.當(dāng)java程序運(yùn)行時(shí)出現(xiàn)問(wèn)題的時(shí)候,系統(tǒng)會(huì)自動(dòng)檢測(cè)到該錯(cuò)誤,并立即生成一個(gè)與該錯(cuò)誤對(duì)應(yīng)的異常對(duì)象。
2.然后吧該異常對(duì)象交給java虛擬機(jī)
3.虛擬機(jī)會(huì)自動(dòng)尋找對(duì)應(yīng)的代碼處理該異常,如果沒(méi)有,虛擬機(jī)做一些簡(jiǎn)單處理后,就會(huì)強(qiáng)制終止程序
4.鍵盤輸入的異常程序
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
try {
int i=sc.nextInt();
System.out.println("i="+i);
}
catch (Exception e)
{
System.out.println("輸入不正確");
}
}
}
5.常見(jiàn)異常
(1)空指針異常 B b=null;
(2)數(shù)組越界異常
(3)算術(shù)異常
6.流程
try{
語(yǔ)句1;
語(yǔ)句2;
}
catch(){//語(yǔ)句一的處理
}
catch(){//語(yǔ)句2的處理
}
...
finally{
}//必須執(zhí)行的代碼

若語(yǔ)句1出錯(cuò),則直接catch2,語(yǔ)句2不會(huì)執(zhí)行
7.throw
throw用來(lái)拋出異常
throw new 異常名(參數(shù))
假設(shè)f方法拋出了異常A,兩種方法來(lái)處理異常
(1)void f() throws A
誰(shuí)調(diào)用f方法,誰(shuí)處理異常A,f方法本身不處理異常
注:throws A表示調(diào)用f方法時(shí)可能會(huì)拋出A類異常,也可能不會(huì),對(duì)拋出的異??梢蕴幚硪部梢圆惶幚?br/>(2)try catch
f方法本身處理A異常
8.普通類不能拋出。繼承了Throwable類就可以
9.自己定義異常拋出
class DivisorisZeroException extends Exception  {

public DivisorisZeroException(String name)
{
    super(name);//可以輸出除數(shù)不能為0 調(diào)用了 Exception這個(gè)父類的一種構(gòu)造方法
}

}

public class B  {
public int divide(int a,int b) throws  DivisorisZeroException
{
int m;
if(b==0)
{
throw new DivisorisZeroException("除數(shù)不能為0");
}
else
{
m=a/b;
}
return m;
}
}

public class Test
{
public static void main(String[] args)
{
B bb=new B();
try {
bb .divide(6,0);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
10.catch
所有的catch只有一個(gè)被執(zhí)行??赡芩械亩疾槐粓?zhí)行
先catch子類異常再catch父類異常(按順序?qū)?不然父類吧子類的異常全都捕獲到了 子類異常永遠(yuǎn)都不會(huì)執(zhí)行)
重寫方法拋出的異常范圍不能大于被重寫方法

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“java如何處理異?!边@篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI