我继承了一个旧的VB.net项目。代码主要使用try-catch进行错误处理。但是在某些地方我找到了If Err.Number <> 0 Then
。
如果发生错误,是什么决定是否应该抛出Exception
,还是只设置Err
?
我不想双向处理错误......
答案 0 :(得分:3)
Err
对象与旧式On Error
错误处理结构一起使用,这是经典VB的余数。 Try-Catch
是更新的.NET样式的错误处理。
您可以了解更多相关信息,以及Error Handling in Visual Basic.NET中的差异。
答案 1 :(得分:1)
听起来旧代码使用On Error Resume Next。确保你明白它的作用,它有点奇怪!
docs解释
On Error Resume Next导致执行继续执行导致运行时错误的语句之后的语句,或者紧跟在包含On Error Resume Next语句的过程的最近调用之后的语句。尽管存在运行时错误,但此语句允许继续执行。您可以将错误处理例程放在发生错误的位置,而不是将控制转移到过程中的其他位置。
然后你将使用If Err.Number&lt;&gt; 0检查是否发生了错误。