java exception用法_Java基础回顾_Exception异常使用详解
package 內部類異常包裝器;
public class 異常 {
/**
* 1.異常:
* 有Error和Exception兩個基本子類
* 2.Error:
* Error表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。
* 3.Exception:
* 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。比如,如果數組索引擴展不超出數組界限,那么,ArrayIndexOutOfBoundsException異常從不會拋出。
*
* 4.本類中對除以0產生錯誤的異常進行捕捉,拋出異常、finally多執行釋放資源,回收垃圾
* 5.處理異常:
* 第一,通過將Try{}catch(){}塊納入其代碼中,在這里捕獲給被命名為屬于某個超類的異常,并調用方法處理它。即使catch塊是空的,這也算是處理情況。
第二,讓被調用的方法表示它將不處理異常,而且該異常將被拋回到它所遇到的調用方法中。它是按如下所示通過用throws子句標記的該調用方法的聲明來實現的:
public void troublesome() throws IOException
6.異常:
(1).非受檢異常:是指編譯不要求強制處理的異常。一般是編程時的邏輯錯誤。是程序員應該積極避免出現的異常
錯誤的類型轉換異常:java.lang.ClassCastException
數組下標越界異常:java.lang.ArrayIndexOutOfBoundsException
空指針異常:java.lang.NullPointerException
除0溢出異常:java.lang.ArithmeticException
數據格式異常 NumberFormatException
(2).受檢異常:是指編譯器要求必須處理的異常,即程序在運行時由于外界因素造成的一般性異常
沒有找到指定名稱的類異常:java.lang.ClassNotFoundException
訪問不存在的文件異常:java.io.FileNotFoundException
操作文件時發生的異常:java.io.IOException
操作數據庫時發生的異常:java.sql.SQLException
7.拋出異常:
(1).throw語句用來明確拋出一個異常,用戶必須得到一個Throwable類或其它子類產生的實例句柄,通過參數傳到catch子句,或者用new創建一個實例
注意:執行throw語句后,運行流程將立即停止,throw的下一條語句也將暫停執行。throw后面必須拋出一個Throwable的實例
(2).throws:\一個方法有異常,但它本身并不對異常進行處理。將其向外拋出異常 詳見:本包中的 異常2.java類
*/
public static void main(String[] args) {
System.out.println("請打開數據庫連接");
System.out.println("數據庫操作");
try {
int i = 12 / 0;//異常代碼,0不能作為整除數
System.out.println("執行數據庫操作");
} catch (Exception e) {
/**System.out.println("除0出錯!");
以下是異常信息的獲取
// System.out.println(e.getMessage());//返回異常對象的詳細信息
e.printStackTrace();//獲取異常的具體類型
*/
throw new ArithmeticException("除0出錯");//7.throw拋異常
}finally{
System.out.println("關閉數據庫連接....");//總要執行的語句
}
}
}
package 內部類異常包裝器;
/**
*
* 這里定義了一個異常,數組下標越界,但通過改變了i的值,使程序又運行,通過finally中的(i+1)次
*
*/
public class 異常2 {
public static void main(String[] args)throws Exception {//throws拋出異常
int i = 0;
String[] str = {"Hello Word", "No I mean it!", "HELLO WORD"};
while(i < 4){//小于4代表數組下標越界
try{
System.out.println(str[i]);
}catch (ArrayStoreException e) {
// TODO: handle exception
i = -1;
}finally{
System.out.println("必運行的代碼"+(i+1)+"次");
}
i++;
}
}
}
總結
以上是生活随笔為你收集整理的java exception用法_Java基础回顾_Exception异常使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sd卡测速工具_拍完照回家发现SD卡损坏
- 下一篇: MySQL基础,DDL和DML(新人入门