gpt4 book ai didi

vb.net - VB.NET 2005/2008 中的非结构化异常处理

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

我有几个 VB.NET 程序要维护,它们是从 VB6 移植过来的,并使用旧式非结构化异常处理:

On Error GoTo yyy

我的问题是,在使用非结构化异常处理时,我是否仍然可以获得堆栈跟踪,或者我是否必须将它们全部转换为结构化异常处理 (Try/Catch),以便使用完整的堆栈跟踪捕获异常。

最佳答案

这是一种获取堆栈跟踪的方法到导致异常的行,不同于other answer它只是跟踪到错误处理程序所在的例程。错误可能发生在不同的例程中。

在非结构化错误处理程序中,只需使用 GetException Err 的属性(property)对象访问底层异常 - 然后使用 StackTrace属性(property)。像这样:

Public Class Form1

Public Sub New()

' This call is required by the Windows Form Designer.'
InitializeComponent()

' Add any initialization after the InitializeComponent() call.'
On Error GoTo ErrHandle

Call test()
Exit Sub

ErrHandle:
MsgBox("Stack trace " & Err.GetException.StackTrace)
Exit Sub

End Sub


Private Sub test()
Call test2()
End Sub

Private Sub test2()
Dim d(2) As Double

MsgBox(d(-1))
End Sub
End Class

关于vb.net - VB.NET 2005/2008 中的非结构化异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/979899/

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