gpt4 book ai didi

vb.net - 在“尝试-捕获如何找到错误线”中

转载 作者:行者123 更新时间:2023-12-03 08:08:00 24 4
gpt4 key购买 nike

我们正在使用Visual Studio。在try&catch的情况下,我们无法精确定位抛出错误的代码行。好像我们使用履历表一样,将显示确切的行,我们可以在那里进行更正并测试。在某些情况下,有时在测试环境中可能无法重现错误。当引发错误时,我们必须至少在错误本身中定位错误。此外,如果程序是一个大程序,例如有多于400行,那么定位错误而没有错误行将是一个很大的麻烦。当try catch被认为优于错误声明时,为什么此功能不可用?当我们使用vb6时,我们可以键入resume并检查错误行。在vb.net中,我们正在搜索该功能。

最佳答案

在VB6中,Err对象相当原始,它为您提供有关错误的基本信息-数字和消息。 “错误”状态很容易消除(On Error Resume Next),正确的错误处理将掩盖任何方法的意图。

.NET异常更为复杂。它们是特殊的对象,实际上可以包含查找错误所需的每一位可用信息,包括导致错误的特定代码行。

这是因为异常冒出气泡直到被捕获(捕获)为止,否则,它们将无法处理并导致程序停止。异常不仅包含带有描述的错误类型和引发该错误的代码行,而且还包含导致该错误的每个调用-在VB6中这样做将需要大量的细致“堆栈跟踪”构建,可能很容易就开始撒谎,并且不会给您确切的行号。 .NET堆栈跟踪永远不会说谎。

要查看堆栈跟踪,可以在任何catch块中放置一个断点,并查看异常的属性。

您无法像在VB6中那样恢复,因为引发异常的行和捕获异常的行之间可能有数十种方法调用。但是,就像在VB6中一样,您可以将黄色的“当前指令”标记移到另一行并继续执行,然后逐行(F10)重新运行try块以查看问题所在。

关于vb.net - 在“尝试-捕获如何找到错误线”中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17790792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com