2012年10月3日 星期三

[101高考程式語言第四題]ExceptionQuestion




class FooException extends Exception{}
class ExceptionQuestion{
    public void aMethod()throws FooException{
       try{
          System.out.println("In aMethod");
          throw new FooException();   //產生例外
       }
       catch(FooException error)
       {
         System.out.println("in first catch");
         throw new FooException();     //例外產生不直接處理丟出
       }
       finally{
         System.out.println("Finally");    //finally 一定會執行
       }

    }
   
    public static void main(String[] args)
    {
       try{
          System.out.println("Start");   
          ExceptionQuestion x = new ExceptionQuestion();
          x.aMethod();     //發生例外了
          System.out.println("After method");
         
       }catch(FooException e1){
          System.out.println("In handler 1");
         
       }catch(Exception e2){
      
          System.out.println("In handler 2");
       }
       System.out.println("End");
   
   
   
   
    }

}

觀念
1. throws  關鍵字的使用(宣告一個方法可以丟出例外用 -> throws)
當例外產生時,不一定要立刻去處理它,可以再把例外丟給別人處理.

2. 當 try 區域的某一行程式碼產生例外之後,程式就會跳到catch區域中去執行例外處理的程式碼.

3. 有的程式碼不論有無發生例外都必需要執行的話,就放在finally區域
 




ans:

Start
In aMethod
in first catch
Finally
In handler 1
End

沒有留言:

張貼留言

讓ASP.NET網站在開發除錯時期擁有WEB.CONFIG文件轉換功能

ref: https://blog.kkbruce.net/2016/09/enabling-xml-document-transforms-for-all-asp-net-web-by-develop-time.html#.XoP1KGMzbRY