如果在函数的中间有一个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++函数退出任意
- 3. 在抛出C++函数声明时会抛出其他异常吗?
- 4. 无法捕获ctrl-c退出函数退出bash脚本
- 5. C:输出前multithreading-父线程退出
- 6. 发生,当它退出函数
- 7. 用户退出时C#运行函数
- 8. C#return不会退出函数
- 9. 干净地退出C函数
- 10. 在C++中抛出后调用析构函数吗?
- 11. 当输入为负时退出一个bool void函数C++
- 12. 抛出异常是一种健康的退出方式吗?
- 13. VIM:替换当前C/C++函数中所有字的出现
- 14. 当用户输入退出或退出时打破循环c#
- 15. 使java退出当前程序
- 16. 正在退出当前范围
- 17. 从JNI函数抛出java异常之后调用C++析构函数吗?
- 18. mysqli_connect函数抛出错误
- 19. PERCENTILE_CONT函数抛出错误
- 20. 强制退出readline()函数
- 21. 在Python中退出函数
- 22. F#递归函数退出?
- 23. C函数指针参数在函数退出时不一样
- 24. new []/delete []并在C++中抛出构造函数/析构函数
- 25. 当抛出SQLiteOutOfMemoryException时
- 26. 退出当按钮
- 27. 从继承函数抛出异常而不抛出
- 28. BASH不同退出级别的多个退出函数
- 29. 退出perl函数而不退出脚本
- 30. C++抛出错误
是否有任何等同于Java的最终模块可以调节这个答案? – PypeBros 2011-03-02 07:20:41
有,是的。你确实得到了典型的try,catch,最后的异常处理。 – FarligOpptreden 2011-03-02 07:21:53