Try Catch中没有处理异常

时间:2014-05-20 14:21:59

标签: vb.net exception

我遍历Try ... Catch块中的一个字节数组。像这样:

        Try
            For Each curByte In bytes
               'Do something with bytes.    
            Next
            Return encodedBytes
        Catch e As Exception
            'handle exception
        End Try

随机地,我的程序将在上面的代码块中的Next语句中以未处理的异常崩溃。例外是mscorlib.dll中的StackOverflow"无法评估表达式"。

为什么我的异常处理没有处理异常?我不确定我知道从哪里开始尝试解决此错误。

1 个答案:

答案 0 :(得分:1)

无法捕获StackOverflowException,因为它是.NET通常无法从中恢复的根本性错误。这就是为什么你没有发现异常的原因。

但是,它的原因通常很容易确定:如果你在发生异常时检查你的调试器并查看callstack,你通常会看到一个递归调用(也就是说,调用自身的同一个方法)嵌套时尚)。这是导致您的异常的原因,您需要修复调用递归调用的任何逻辑来解决问题。