Java throw:異常的拋出怎麼回事

來源:互聯網
上載者:User

標籤:拋出異常   通過   處理常式   http   建構函式   throwable   例子   rgs   顯示   

到目前為止,你只是擷取了被Java運行時系統拋出的異常。然而,程式可以用throw語句拋出明確的異常。Throw語句的通常形式如下:
    throw ThrowableInstance;
這裡,ThrowableInstance一定是Throwable類類型或Throwable子類類型的一個對象。簡單類型,例如int或char,以及非Throwable類,例如String或Object,不能用作異常。有兩種可以獲得Throwable對象的方法:在catch子句中使用參數或者用new操作符建立。

程式執行在throw語句之後立即停止;後面的任何語句不被執行。最緊緊包圍的try塊用來檢查它是否含有一個與異常類型匹配的catch語句。如果發現了匹配的塊,控制轉向該語句;如果沒有發現,次包圍的try塊來檢查,以此類推。如果沒有發現匹配的catch塊,預設例外處理常式中斷程式的執行並且列印堆棧軌跡。

下面是一個建立並拋出異常的例子程式,與異常匹配的處理常式再把它拋出給外層的處理常式。
// Demonstrate throw.
class ThrowDemo {
    static void demoproc() {
      try {
         throw new NullPointerException("demo");
      } catch(NullPointerException e) {
         System.out.println("Caught inside demoproc.");
         throw e; // rethrow the exception
      }
   }

   public static void main(String args[]) {
      try {
         demoproc();
      } catch(NullPointerException e) {
         System.out.println("Recaught: " + e);
      }
   }
}

該程式有兩個機會處理相同的錯誤。首先,main()設立了一個異常關係然後調用demoproc( )。 demoproc( )方法然後設立了另一個異常處理關係並且立即拋出一個新的NullPointerException執行個體,NullPointerException在下一行被捕獲。異常於是被再次拋出。下面是輸出結果:
Caught inside demoproc.
Recaught: java.lang.NullPointerException: demo

該程式還闡述了怎樣建立Java的標準異常對象,特別注意下面這一行:
   throw new NullPointerException("demo");
這裡,new用來構造一個NullPointerException執行個體。所有的Java內建的運行時異常有兩個建構函式:一個沒有參數,一個帶有一個字串參數。當用到第二種形式時,參數指定描述異常的字串。如果對象用作 print( )或println( )的參數時,該字串被顯示。這同樣可以通過調用getMessage( )來實現,getMessage( )是由Throwable定義的。

Java throw:異常的拋出怎麼回事

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.