/*
異常:就是程序在運行時出現不正常情況。
異常由來:問題也是現實生活中的一個具體的事物,也可以通過java的類的形式進行描述。並封裝成對象。
其實就是java對不正常情況進行描述後的對象體現。
對於問題的劃分:兩種:一種是嚴重的問題,一種非嚴重的問題
對於嚴重的,java通過Error類進行描述。
對於Error一般不編寫針對性的代碼對其進行處理
對於非嚴重的,java通過Exception類進行描述
對於Exception可以使用針對性的處理方式進行處理
無論Eorror或者Exception都具有一些共性內容
比如:不正常情況的信息,引發原因等。
Throwable
|--Error
|--Exception
2.異常的處理
java 提供了特有的語句進行處理
try
{
需要被檢測的代碼;
}
catch(異常類 變量)
{
處理異常的代碼;(處理方式)
}
finally
{
一定會執行的語句;
}
3.對捕獲到的異常對象進行常見方法操作。
String getMessage():獲取異常信息
在函數上聲明異常。
便於提高安全性,讓調用者進行處理。不處理編譯失敗。
對於多異常的處理。
1.聲明異常時,建議聲明更爲具體的異常。這樣處理的可以更具體。
2.對方聲明幾個異常,就對應有幾個catch塊。不要定義多餘的catch塊
如果多個catch塊中的異常出現繼承關係,父類異常catch塊放在最下面。
建議在進行catch處理時,catch中一定要定義具體處理方式
不要簡單定義一句 e.printStackTrace();
也不要簡單的書寫一條輸出語句
*/
class Demo
{
public int div(int a,int b)throws ArithmeticException,ArrayIndexOutOfBoundsException//在功能上通過throws的關鍵字聲明瞭該功能有可能會出現問題
{
int[] arr=new int[a];
System.out.println(arr[4]);
return a/b;
}
}
class ExceptionDemo1
{
public static void main(String[] args) //throws Exception
{
Demo d=new Demo();
try
{
int x=d.div(4,1);
System.out.println("x="+x);
}
catch (ArithmeticException e)
{
System.out.println(e.toString());
System.out.println("被零除啦!!!");
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println(e.toString());
System.out.println("角標越界啦!!!");
}
catch (Exception e)
{
System.out.println("hah"+e.toString());
}
System.out.println("over");
}
}