java關(guān)于異常
1.什么是異常
程序中遇到的非致命錯誤,而不是編譯時的語法錯誤,如空指針異常,操作數(shù)越界,打開一個不純在的文件、網(wǎng)絡中斷等等。
由于Java語言面向?qū)ο?,萬物皆對象,異常也被看成是一種對象。
//=============================================
2.異常的繼承體系
? java.lang.Throwable -- 所有的錯誤和異常的父類 ,異常這個事物最高的父類
?
? ? |-- 錯誤 Error 所有錯誤的父類
? ? |-- 異常 Exception 所有異常的父類
??Throwable類中的三個方法,都是將異常發(fā)生的信息,顯示出來
? String toString() 返回此 throwable 的簡短描述。
? String getMessage() 返回此 throwable 的詳細消息字符串。
? void printStackTrace() 將此 throwable 及其追蹤輸出至標準錯誤流。
//=============================================
3.如何處理異常
第一種處理方式:使用:try
? catch 處理異常。 ?格式語法:
try{
? ? ? ?被檢測的代碼
? ? ? ?可能發(fā)生異常的代碼
? ? ?}catch(異常類 變量){
? ? ? ?處理異常
? ? ? ?循環(huán),判斷,調(diào)方法
? ? ?}
案例:
class ExceptionDemo
{
?public static void main(String[] args)
?{
? try{
? int result = div(3,0);
? System.out.println("result="+result);
? }catch(Exception e){
? ? //輸出異常的信息
? ?e.printStackTrace();//打印異常信息,就用這個方法
? }
??
? System.out.println("Game Over");
?}
?private static int div(int x , int y){
? ? ? ? return x / y ;
?}
}
//==============
第二種方式:繼續(xù)拋出異常,關(guān)鍵字throw ?與 throws
throw 關(guān)鍵字用法:寫在方法內(nèi)部的,意思拋出異常的意思,throw 后面寫異常對象 new出來
throws 寫在方法的聲明上,后面寫的是異常類。
案例:
class ExceptionDemo2
{
?public static void main(String[] args) throws Exception
?{
? //System.out.println("Hello World!");
? method(15);
?}
?//定義一個方法,計算月份屬于那一個季節(jié)
?//throws Exception方法有異常,自己不處理,聲明出來,交給調(diào)用者處理
?private static void method(int month)throws Exception{
? ?
? ? if(month < 1 || month > 12)
? ? ?//如果if成立,說明月份非法,拋出異常
? ? ? throw new Exception();
? ? else if(month >=3 && month