重點:
異常的概念
異常處理機制
難點:
try-catch-finally(掌握)
throw、throws關鍵字 (瞭解)
目錄
1、異常處理概述
什麼是異常:
異常就是在程序的運行過程中所發生的意外事件,它中斷指令的正常執行。
Java中提供了一種獨特的處理異常的機制,通過異常來處理程序設計中出現的錯誤。
爲什麼使用異常處理:
將出錯處理和正常代碼分開。增加程序的可讀性。
在Java中,處理這種情況的方法是利用異常處理,把出錯處理和正常代碼分開,Java異常處理通過5個關鍵字try,catch,finally,throw和throws進行管理。
//傳統方法
makeFriends( ) {
上交友網站註冊信息;打不開咋辦?
尋找合適對象;沒有合適的對象咋辦?
預約見面;沒有成功咋辦?
交談甚歡;沒有共同語言咋辦?
互留電話; 不留電話咋辦?
}
解決方法:寫大量的if語句。
//Java解決方法
makeFriends( ) {//結構清楚,無需自己判斷,代碼量小。
try {
上交友網站註冊信息;
尋找合適對象;
預約見面;
交談甚歡;
互留電話;
}
catch (網站註冊失敗) {
處理代碼; }
catch (尋找合適對象失敗) {
處理代碼; }
catch (約會失敗) {
處理代碼; }
catch (交談失敗) {
處理代碼; }
catch (互留電話失敗) {
處理代碼; }
}
2、常見異常及其用途
3、java程序對異常的兩種處理方式
1)捕獲異常(try/catch/finally):就地解決,並使程序繼續執行。
舉例如下:
public class ExceptionTest1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
int a=3/0;
}catch(Exception e){
System.out.println(e);
}finally{
System.out.println("this is final sentence.");
}
}
}
//輸出結果:
java.lang.ArithmeticException: / by zero
this is final sentence.
2)聲明拋棄異常 即 自定義異常類(throws/throw):將異常向外轉移,即將異常拋出方法之外,由調用該方法的環境去處理。
throw是語句拋出異常,一般是在代碼塊內部,當程序出現某種邏輯錯誤時由程序員主動拋出某種特定類型的異常
public static void main(String[] args) {
String s = "abc";
if(s.equals("abc")) {
throw new NumberFormatException();
//拋出的異常類型也可以是自定義的
} else {
System.out.println(s);
}
//function();
}
throws是方法可能拋出異常的聲明。(用在聲明方法時,表示該方法可能要拋出異常)
public void function() throws Exception{……}
public class testThrows(){
public static void function() throws NumberFormatException{
//拋出的異常也可以是自定義的異常。
String s = "abc";
System.out.println(Double.parseDouble(s));
}
public static void main(String[] args) {
try {
function();
//當某個方法可能會拋出某種異常時用於throws
// 聲明可能拋出的異常,然後交給上層調用它的方法程序處理
} catch (NumberFormatException e) {
System.err.println("非數據類型不能強制類型轉換。");
//e.printStackTrace();
}
}