Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 确定在EventArgs中放置异常吗?_C#_Events - Fatal编程技术网

C# 确定在EventArgs中放置异常吗?

C# 确定在EventArgs中放置异常吗?,c#,events,C#,Events,我正在构建一个messenger库,我有一个关于如何正确地向用户报告特定错误的问题 主Messenger类有两种状态-已登录和已注销 内部发生的错误可能导致客户端注销 例如,DisconnectException(如果内部发生SocketException),或者ChallengeFailedException(如果客户端无法完成messenger服务器发出的质询) 是否可以(或建议)在LogoutEventArgs中将异常传递给用户?例如-LogoutEventArgs.Exception 或

我正在构建一个messenger库,我有一个关于如何正确地向用户报告特定错误的问题

主Messenger类有两种状态-已登录和已注销

内部发生的错误可能导致客户端注销

例如,DisconnectException(如果内部发生SocketException),或者ChallengeFailedException(如果客户端无法完成messenger服务器发出的质询)

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


或者有更理想的方法来处理这个问题吗?

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

如果异常是从另一个线程引发的,则可以将其包装在另一个异常中,并在调用线程上引发


如果这是一种预期的常见错误情况,那么它取决于用户在这种情况下应该做什么。类似枚举或自定义错误类的方法可能比仅将异常粘贴在
EventArgs
对象中要好。自定义对象也可以包含对
异常
对象的引用。

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

如果异常是从另一个线程引发的,则可以将其包装在另一个异常中,并在调用线程上引发


如果这是一种预期的常见错误情况,那么它取决于用户在这种情况下应该做什么。类似枚举或自定义错误类的方法可能比仅将异常粘贴在
EventArgs
对象中要好。自定义对象还可以包含对
异常
对象的引用。

我有一个类,它包含一些已知的异常,例如sql server超时。这样我的客户机就不需要处理这个问题,我的类会捕获它并返回一个错误枚举。
我只对捕获到的异常进行事件处理,以便我的客户可以选择记录它们。我不希望我的类具有日志依赖项。

我有一个类,它包含一些已知的异常,例如sql server超时。这样我的客户机就不需要处理这个问题,我的类会捕获它并返回一个错误枚举。
我只对捕获到的异常进行事件处理,以便我的客户可以选择记录它们。我不希望我的类具有日志依赖项。

在这种情况下,我添加了一个建议。在这种情况下,我添加了一个建议。