例:public void print() throws Exception.
對於方法a,如果它定義了throws Exception。那么當它調用的方法b返回異常對象時,方法a並不處理,而將這個異常對象向上一級返回,如果所有的方法均不進行處理,返回到主方法,程序中止。(要避免所有的方法都返回的使用方法,因為這樣出現一個很小的異常就會令程序中止)。
如果在方法的程序中有一行throw new Exception(),返回錯誤,那么其后的程序不執行。因為錯誤返回后,后面的程序肯定沒有機會執行,那么JAVA認為以后的程序沒有存在的必要。
對於try……catch格式:
try {可能出現錯誤的代碼塊} catch(exception e){進行處理的代碼} ;
對象變量的聲明
用這種方法,如果代碼正確,那么程序不經過catch語句直接向下運行;
如果代碼不正確,則將返回的異常對象和e進行匹配,如果匹配成功,則處理其后面的異常處理代碼。(如果用exception來聲明e的話,因為exception為所有exception對象的父類,所有肯定匹配成功)。處理完代碼后這個例外就完全處理完畢,程序會接着從出現異常的地方向下執行(是從出現異常的地方還是在catch后面呢?利用程序進行驗證)。最后程序正常退出。
Try中如果發現錯誤,即跳出try去匹配catch,那么try后面的語句就不會被執行。
1 package TomText; 2 //定義一個求圓面積的類。 3 public class TomText_48 { 4 private double radius; 5 final double pi=3.14; 6 public double setradius(double r){ 7 return radius=r; 8 } 9 10 public void getRadius() { 11 this.setradius(radius); 12 } 13 public double calculateArea( ) { 14 return pi*radius*radius; 15 } 16 public void res(){ 17 System.out.println(this.calculateArea()); 18 } 19 public static void main(String[] args){ 20 TomText_48 t=new TomText_48(); 21 t.setradius(44); 22 double s=t.calculateArea(); 23 t.res(); 24 System.out.println(s); 25 } 26 27 }
