VB.net中的Err.Number vs try catch

VB.net中的Err.Number vs try catch,vb.net,exception-handling,try-catch,Vb.net,Exception Handling,Try Catch,我继承了一个旧的VB.net项目。代码主要使用try-catch进行错误处理。然而,在一些地方,我发现如果错误号为0,那么 如果发生错误,如何决定是抛出异常,还是只设置错误 我不想同时处理错误 该对象与老式的On Error错误处理结构一起使用,这是经典VB的剩余部分Try-Catch是更流行的.NET错误处理方式 您可以了解更多关于这方面的信息,其中的差异。听起来像是下一步错误恢复时使用的旧代码。确保你了解它的功能,这有点奇怪 老师解释一下 On Error Resume Next导致执行继续

我继承了一个旧的VB.net项目。代码主要使用try-catch进行错误处理。然而,在一些地方,我发现
如果错误号为0,那么

如果发生错误,如何决定是抛出异常
,还是只设置错误

我不想同时处理错误

该对象与老式的
On Error
错误处理结构一起使用,这是经典VB的剩余部分
Try-Catch
是更流行的.NET错误处理方式


您可以了解更多关于这方面的信息,其中的差异。

听起来像是下一步错误恢复时使用的旧代码。确保你了解它的功能,这有点奇怪

老师解释一下

On Error Resume Next导致执行继续,语句紧跟导致运行时错误的语句,或紧跟包含On Error Resume Next语句的过程的最新调用。此语句允许在运行时出错的情况下继续执行。您可以将错误处理例程放置在可能发生错误的位置,而不是将控制转移到过程中的另一个位置


然后,您将使用If Err.Number 0检查是否发生了错误。

如何确定哪个错误处理处于活动状态?“我认为,在出现错误时,0应该设置为旧样式。@leiflundgren:任何与您正在查看的代码最接近的构造都将是活动的。您可以混合这两种样式,但不能在一个方法中。因此,您可以让一个方法使用
On error
语句设置错误处理,然后调用另一个使用
Try Catch
@fredrik mork:Ah的方法,因此如果我在方法中写入error Goto 0(或类似),我将使用该stile。否则就是试抓?@Leilungdgren:是的,几乎正确。为了使用
Try Catch
,您当然需要在代码中包含这样的语句。如果您既没有关于错误的
,也没有关于错误的
Try Catch
,则任何异常都将被取消处理并使您的应用程序崩溃。@fredrik mork:Ah。错误是假定现有代码是正确的。;)添加了我现在习惯的尝试捕捉。谢谢臭名昭著的错误将在下一步继续。