我正在构建一个 Messenger 库,我对如何正确地向用户报告特定错误有疑问。
主要的 Messenger 类有两种状态 - 登录和注销。
内部发生的错误会导致客户端注销。
例如,一个 DisconnectException(如果内部发生 SocketException),或者一个 ChallengeFailedException(如果客户端无法完成信使服务器发出的挑战)。
是否可以(或建议)在 LogoutEventArgs 中将异常传递给用户?例如 - LogoutEventArgs.Exception
或者是否有更理想的处理方式?
最佳答案
如果异常不是预期的(即,它确实是异常情况),那么您可能应该抛出异常,以便用户可以使用catch 语句来处理任何特定的异常类型。
如果异常是从另一个线程抛出的,您可以将其包装在另一个异常中并在调用线程上抛出。
如果这是预期的常见错误情况,则取决于用户在这种情况下应该做什么。枚举或自定义 Error 类之类的东西可能比将异常粘贴在 EventArgs
对象中更好。自定义对象也可以包含对Exception
对象的引用。
关于c# - 可以将 Exception 放入 EventArgs 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546912/