gpt4 book ai didi

c# - 如何正确实现异常处理程序方法?

转载 作者:太空狗 更新时间:2023-10-30 01:25:36 24 4
gpt4 key购买 nike

假设我有以下构造:

Public Sub SomeMethod()
Try
doSomething()
Catch ex as Exception
handleException(ex)
End Try
End Sub

我想写 handleException(ex)。假设我的类(class)有不同的事件处理选项:

 Public Enum ExceptionHandlingType
DisplayInMessageBox 'Display in msgbox
ThrowToCaller 'Raise the error to the caller routine
RaiseOnMessageEvent 'e-mail
End Enum

下面是我尝试编写“handleException”。似乎无论我做什么,如果对象设置为“ThrowToCaller”异常模式,那么当我使用 handleException() 时,堆栈跟踪就会变得一团糟。当该选项为“throwTocaller”时,我如何才能生成一个干净的堆栈跟踪(其他所有选项似乎都可以正常工作)

Public Sub handleException(ex as Exception)
Select Case mExceptionHandling
Case ExceptionHandlingType.DisplayInMessageBox
MsgBox(ex.Message)
Case ExceptionHandlingType.ThrowToCaller
Throw New Exception(ex.Message, ex)
Case ExceptionHandlingType.RaiseOnMessageEvent
SendEMailMessage(ex)
End Select
End Sub

最佳答案

尝试将调用更改为

if (!HandleException(ex)) throw;

HandleException()

bool HandleException(Exception ex) {
bool handled = false;

if (ex is SomeException) {
... handle the exception ...
handled = true
}
return handled;
}

这应该可以解决问题。

关于c# - 如何正确实现异常处理程序方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6587199/

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