您好,登錄后才能下訂單哦!
這篇文章主要介紹了java如何處理異常,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1.當java程序運行時出現問題的時候,系統會自動檢測到該錯誤,并立即生成一個與該錯誤對應的異常對象。
2.然后吧該異常對象交給java虛擬機
3.虛擬機會自動尋找對應的代碼處理該異常,如果沒有,虛擬機做一些簡單處理后,就會強制終止程序
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.常見異常
(1)空指針異常 B b=null;
(2)數組越界異常
(3)算術異常
6.流程
try{
語句1;
語句2;
}
catch(){//語句一的處理
}
catch(){//語句2的處理
}
...
finally{
}//必須執行的代碼
若語句1出錯,則直接catch2,語句2不會執行
7.throw
throw用來拋出異常
throw new 異常名(參數)
假設f方法拋出了異常A,兩種方法來處理異常
(1)void f() throws A
誰調用f方法,誰處理異常A,f方法本身不處理異常
注:throws A表示調用f方法時可能會拋出A類異常,也可能不會,對拋出的異常可以處理也可以不處理
(2)try catch
f方法本身處理A異常
8.普通類不能拋出。繼承了Throwable類就可以
9.自己定義異常拋出
class DivisorisZeroException extends Exception {
public DivisorisZeroException(String name) { super(name);//可以輸出除數不能為0 調用了 Exception這個父類的一種構造方法 }
}
public class B {
public int divide(int a,int b) throws DivisorisZeroException
{
int m;
if(b==0)
{
throw new DivisorisZeroException("除數不能為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只有一個被執行。可能所有的都不被執行
先catch子類異常再catch父類異常(按順序寫 不然父類吧子類的異常全都捕獲到了 子類異常永遠都不會執行)
重寫方法拋出的異常范圍不能大于被重寫方法
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java如何處理異常”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。