gpt4 book ai didi

vb.net - 自定义错误与自定义异常

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

我正在更新一些 vb6代码到 vb.net .旧代码中的错误处理使用 On Error GoToOn Error Resume Next每个方法的末尾都有错误句柄。例如:

Public Function Init() As Boolean
On Error GoTo Err_Init
Init = True
Exit_Init:
Exit Function
Err_Init:
Init = False
Resume Exit_Init
End Function

现在我将此代码更新为 vb.net我将所有错误处理更改为 try - catch陈述。我可以包装 Public Sub Main try - catch 中的函数声明并在顶层捕获所有错误或将上面的代码换成以下代码:
Public Function Init() As Boolean
Try
Init = True
catch e As exception
Init = false
End Try
End Function

我的问题是,在旧代码中,如果某些 Error 9999 设置了自定义错误 ( If)声明没有得到满足。在函数末尾的错误句柄中,它检查错误是否不是 9999 .如果不是,那么它会适本地处理它。使用第一个示例:
Public Function Init() As Boolean
On Error GoTo Err_Init
Dim a As Integer
If (a <> 10)
Init = True
Else
Error 9999
End If
Exit_Init:
Exit Function
Err_Init:
If (Err.number() <> 9999)
Init = False
End If
Resume Exit_Init
End Function

所以我的问题是,我该如何使用 try-catch复制此 error 9999 的语句,在我的代码中,它并不总是抛出相同的异常,因此为什么只抛出自定义 error 9999可以全面使用并用于标记可以忽略的错误,然后您就可以捕获重要的错误。有没有办法 Throw New Exception(Id = 9999) , 那类的东西?

最佳答案

您应该创建一个自定义异常并在您的捕获中单独处理。
下面是一些关于如何创建自定义异常的示例:https://msdn.microsoft.com/en-us/library/87cdya3t(v=vs.110).aspx

然后以这种方式编写代码:

Public Function Init() As Boolean
Try
If (a = 10) Then
Throw New YourCustomException()
End If
Catch yourEx As YourCustomException
'Do whatever you want to do when the code throws your custom exception
Catch generalException As Exception
Return False
End Try

Return True
End Function

关于vb.net - 自定义错误与自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35338689/

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