不可捕获的异常

虽然 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 是不可捕捉的。小心那个!