2011-03-02 147 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块进来的地方。