異常處理機制的簡單原理和應用
一、Execption可以分為java標准定義的異常和程序員自定義異常2種
(1)一種是當程序違反了java語規則的時候,JAVA虛擬機就會將發生的錯誤表示為一個異常.這里語法規則指的是JAVA類庫內置的語義檢查。
例如 int i = 2 / 0 或者 String str = null;str.length();
(2)另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,並自由選擇在何時用throw關鍵字引發異常。
例如 Exception ex = new Exception("這是我自定義的異常信息");throw ex;
所有的異常都是Thowable的子類。
異常處理是與程序執行是並行的。
Try{ //可能發現異常的語句塊 }catch(異常類型,e){ //發生異常時候的執行語句塊 } finnally{ //不管是否發生異常都執行的語句塊 }
二、異常的處理方式
包括捕獲異常和上拋異常
1、捕獲異常
以捕獲 int i=2/0 為例
try { int i = 2 / 0; } catch (Exception ex) {// 所有異常的父類Exception ex.printStackTrace(); // 處理異常 System.out.println("異常信息:" + ex.getMessage()); } finally { System.out.println("釋放資源,后續代碼,一定要執行的代碼"); } System.out.println("繼續運行");
輸出結果為
ex.printStackTrace()表示向控制台打印詳細異常信息
2、上拋異常 throws
以 String str =null;
str.length();(未實例化)為例
package test; import com.hanqi.ThrowEX; public class Test { public void test() throws Exception { //用throws String str = null; str.length(); } public static void main(String[] args) { ThrowEX te = new ThrowEX(); //用throw try { te.test(); } catch (Exception e) {// TODO 自動生成的 catch塊 e.printStackTrace(); System.out.println("異常信息為" + e.getMessage()); } } }
e.printStackTrace()表示向控制台打印詳細異常信息