不可捕获的异常
虽然 Catch ex As Exception
声称它可以处理所有异常 - 但有一个异常(没有双关语意)。
Imports System
Static Sub StackOverflow() ' Again no pun intended
StackOverflow()
End Sub
Static Sub Main()
Try
StackOverflow()
Catch ex As Exception
Console.WriteLine("Exception caught!")
Finally
Console.WriteLine("Finally block")
End Try
End Sub
糟糕…有一个未被捕获的 System.StackOverflowException
,而控制台甚至没有打印任何东西! 根据 MSDN ,
从 .NET Framework 2.0 开始,你无法使用 try / catch 块捕获 StackOverflowException 对象,并且默认情况下会终止相应的进程。因此,你应该编写代码来检测并防止堆栈溢出。
所以,System.StackOverflowException
是不可捕捉的。小心那个!