2011-03-02 85 views

回答

13

是的,除了任何finally塊以外,或者如果函數中有一個異常處理函數可以捕獲您拋出的異常類型。

0

確實如此。它會產生一個異常,它會出現在調用堆棧上。

+0

是否有任何等同於Java的最終模塊可以調節這個答案? – PypeBros 2011-03-02 07:20:41

+0

有,是的。你確實得到了典型的try,catch,最後的異常處理。 – FarligOpptreden 2011-03-02 07:21:53

0

是的。它會去最近的catch區塊。

1

你試過了嗎? :)

我想正確的答案是,這取決於。如果你爲了任何奇怪的原因用一個try/catch包裝了這個throw,那麼不會。如果你沒有,那麼是的,除非你沒有在調用堆棧的某個地方捕獲異常,在這種情況下,你的整個應用程序將崩潰。

1

是,除非你將其接住或有一個finally塊:

try { 
    var foo = 42 /0; 
} 
finally 
{ 
    // This will execute after the exception has been thrown 
} 
+0

......並且在最後的情況下,當前的方法將被退出,即後面的代碼將不會執行。 – 2011-03-03 01:09:32

5

控制傳遞到調用堆棧中的下一個異常處理(catch塊),不管是在目前的方法或一種其父母。如果throw未封裝在try/catch塊中,則在尋找父catch塊之前執行任何finally塊。

0

一個異常是當它不應該發生時發生的事件,所以應用程序不知道如何處理這樣的事件。在所有OOP語言中(我知道),運行時所做的是停止調用該事件的函數,然後將該Exception拋出堆棧,直到有人知道如何處理它爲止。這就是try/catch塊進來的地方。