不可捕獲的異常

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