c# - 可以将 Exception 放入 EventArgs 中吗?

标签 c# events

我正在构建一个 Messenger 库,我对如何正确地向用户报告特定错误有疑问。

主要的 Messenger 类有两种状态 - 登录和注销。

内部发生的错误会导致客户端注销。

例如,一个 DisconnectException(如果内部发生 SocketException),或者一个 ChallengeFailedException(如果客户端无法完成信使服务器发出的挑战)。

是否可以(或建议)在 LogoutEventArgs 中将异常传递给用户?例如 - LogoutEventArgs.Exception

或者是否有更理想的处理方式?

最佳答案

如果异常不是预期的(即,它确实是异常情况),那么您可能应该抛出异常,以便用户可以使用catch 语句来处理任何特定的异常类型。

如果异常是从另一个线程抛出的,您可以将其包装在另一个异常中并在调用线程上抛出。

如果这是预期的常见错误情况,则取决于用户在这种情况下应该做什么。枚举或自定义 Error 类之类的东西可能比将异常粘贴在 EventArgs 对象中更好。自定义对象也可以包含对Exception 对象的引用。

关于c# - 可以将 Exception 放入 EventArgs 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546912/

相关文章:

c# - 为什么没有订阅者时委托(delegate)为空而不是空列表?

c# - 表达 C# 条件, "if a mouse/keyboard action has not occurred in the last ' n'秒”

c# - 如何解析简单捕获的闭包表达式并获取目标对象和选择器

C# Visual Studio Excel 加载项 : How can I detect Excel Office Theme Change?

c# - PInvoke - 从指针编码结构数组

c# - 非持久性 HTTP 1.1 连接比持久性连接更快?

c# - Unity DI 更新至版本 5

Delphi - 移动重叠的 TShapes

javascript 在处理程序中删除事件,

events - 如何使用 Netty 4.0.x 检测新的传入连接?