JAVA教程第四講Java的例外處理和I/O流4.1

字號:

4.1 什么是例外
    例外就是在程序的運行過程中所發(fā)生的異常事件,它中斷指令的正常執(zhí)行。Java中提供了一種獨特的處理例外的機制,通過例外來處理程序設計中出現(xiàn)的錯誤。
    4.1.1 例外示例
    【例4-1】
      import java.io.*;
      class ExceptionDemo1{
     public static void main( String args[ ] ){
      FileInputStream fis = new FileInputStream( "text" );
      int b;
      while( (b=fis.read())!=-1 ){
       System.out.print( b );
      }
      fis.close( );
     }
    }
     查看編譯結果
    【例4-2】
      class ExceptionDemo2{
     public static void main( String args[ ] ){
      int a = 0;
      System.out.println( 5/a );
     }
      }
     運行結果
    C:\>javac ExceptionDemo2.java
    C:\>java ExceptionDemo2
    java.lang.ArithmeticException: / by zero at
    ExceptionDemo2.main(ExceptionDemo2.java:4)
     因為除數(shù)不能為0,所以在程序運行的時候出現(xiàn)了除0溢出的異常事件。為什么有的例外在編譯時出現(xiàn),而有的例外是在運行時出現(xiàn)的?讓我們繼續(xù)學習java 的例外處理機制。
    4.1.2 例外處理機制
    拋棄(throw)例外:
    在Java程序的執(zhí)行過程中,如果出現(xiàn)了異常事件,就會生成一個例外對象。生成的例外對象將傳遞給Java運行時系統(tǒng),這一例外的產生和提交過程稱為拋棄(throw)例外
    兩種處理例外的機制:
    ◇ 捕獲例外:
    當Java運行時系統(tǒng)得到一個例外對象時,它將會沿著方法的調用棧逐層回溯,尋找處理這一例外的代碼。找到能夠處理這種類型的例外的方法后,運行時系統(tǒng)把當前例外對象交給這個方法進行處理,這一過程稱為捕獲(catch)例外。這是積極的例外處理機制。如果Java運行時系統(tǒng)找不到可以捕獲例外的方法,則運行時系統(tǒng)將終止,相應的Java程序也將退出。
    ◇ 聲明拋棄例外:
    如果一個方法并不知道如何處理所出現(xiàn)的例外,則可在方法聲明時,聲明拋棄(throws)例外。這是一種消極的例外處理機制。