以下內容來自marschen的java4android視頻教程
本集主要內容.
1.throw的作用.
2.throws的作用
執行個體來說明.
在java當中,所有的東西都有對象,
異常了是對象,所以我們可以產生異常對象.
使用一個類來產生.
jdk提代的runtimeException這個類產生一個異常
對象......
產生對象後,拋出....
總結:
1. throw的作用,jdk, java虛擬機器判斷不了,我們可以使用 throw拋出異常.
2. throws的作用,聲明一個函數可能會產生異常,但是我們在這個函數裡面不處理,
而且由調用這個函數的對象進行異常try....catch...finally....
class User{private int age;public void setAge(int age) throws Exception{if(age < 0){//RuntimeException e = new RuntimeException("年齡不能為負數"); 屬於uncheck Exception //使用 uncheck Exception 可以進行編譯. Exception e = new Exception("年齡不能為負數"); //屬於check Exception //必須對其捕捉或聲明。 //使用 check exception不可編譯,如果要編譯,有兩種辦法 //1. 在這裡進行try....catch.... 進行捕捉 //2. 使用throws進行聲明,這個函數可能產生異常,但是不捕捉,而是由調用這個函數的對象將其捕捉. throw e;}this.age = age;}}
class Test{public static void main(String args[]){User user = new User();try{user.setAge(-20);//這樣寫文法沒有問題 //但是荒唐了.所以我們要拋出異常.} catch(Exception e){System.out.println(e);} }}
class User1{private int age;public void setAge(int age) {if(age < 0){ System.out.println("age < 0"); try{ Exception e = new Exception(" try年齡不能為負數"); throw e; } catch(Exception e){ System.out.println("catch 年齡不能為負數"); e.printStackTrace(); } }this.age = age;}}
class Test1{public static void main(String args[]){User1 user11 = new User1();user11.setAge(-20);//這樣寫文法沒有問題 //但是荒唐了.所以我們要拋出異常.} }