替换类中的所有异常

本文关键字:异常 替换 | 更新日期: 2023-09-27 18:10:40

在c#中是否有一种方法可以用MyException代替NetworkStresm实例抛出的所有ObjectDisposedException ?

这样做的目的是,当其他线程可以处理流时,我想读取和写入流。这很好-当处理流时抛出异常,我处理它,它是程序正常流的一部分(因为客户端可能只是断开连接)。与其他对象的ObjectDisposedException相反,这确实是一个错误,我的代码中的一个bug。

因此,如果我可以让流抛出MyException而不是常规的ObjectDisposedException,我可以以不同的方式对待它。

其他能达到这个目的的建议也很好。

谢谢!

替换类中的所有异常

我认为如果你想发生这种情况,你将不得不捕获ObjectDisposedException并重新抛出MyException

一个更好的选择(如果你控制你正在调用的代码)是让另一边的代码检查它是否已经被处理,并且不抛出ObjectDisposedException,而只是返回而不做任何事情。

我不知道有什么方法可以做到这一点,但是您可以通过使用ObjectDisposedExceptionObjectName属性来处理NetworkStream抛出的所有异常并重新抛出其余异常来实现类似的行为。