如果在函數的中間有一個throw
語句,函數在此時是否終止?C#:'拋出'退出當前函數嗎?
7
A
回答
13
是的,除了任何finally
塊以外,或者如果函數中有一個異常處理函數可以捕獲您拋出的異常類型。
0
確實如此。它會產生一個異常,它會出現在調用堆棧上。
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塊進來的地方。
相關問題
- 1. C函數在輸入之前退出
- 2. C++試試拋出Catch函數嗎?
- 3. C++函數退出任意
- 4. 在拋出C++函數聲明時會拋出其他異常嗎?
- 5. 在退出emacs之前運行函數
- 6. 如何從AJAX調用中拋出異常並退出函數?
- 7. 無法捕獲ctrl-c退出函數退出bash腳本
- 8. C:輸出前multithreading-父線程退出
- 9. 發生,當它退出函數
- 10. Erlang退出函數?
- 11. 嘗試拋出catch C++嵌套函數
- 12. C#return不會退出函數
- 13. C++塊線程退出信號/函數
- 14. 用戶退出時C#運行函數
- 15. 乾淨地退出C函數
- 16. 在退出C++中的線程之前調用mysql_thread_end函數pthread
- 17. 在C++中拋出後調用析構函數嗎?
- 18. 當輸入爲負時退出一個bool void函數C++
- 19. 拋出異常是一種健康的退出方式嗎?
- 20. 拋出和拋出前的區別c#.net
- 21. VIM:替換當前C/C++函數中所有字的出現
- 22. 當線程意外退出時拋出什麼異常?
- 23. 當用戶輸入退出或退出時打破循環c#
- 24. 從JNI函數拋出java異常之後調用C++析構函數嗎?
- 25. $ httpbackend.flush()拋出當前$$ route.title未定義
- 26. 正在退出當前範圍
- 27. 退出當前調用堆棧的Javascript
- 28. 如何退出當前活動繼續
- 29. ../使用../退出當前目錄
- 30. 使java退出當前程序
是否有任何等同於Java的最終模塊可以調節這個答案? – PypeBros 2011-03-02 07:20:41
有,是的。你確實得到了典型的try,catch,最後的異常處理。 – FarligOpptreden 2011-03-02 07:21:53