替换类中的所有异常
本文关键字:异常 替换 | 更新日期: 2023-09-27 18:10:40
在c#中是否有一种方法可以用MyException
代替NetworkStresm
实例抛出的所有ObjectDisposedException
?
这样做的目的是,当其他线程可以处理流时,我想读取和写入流。这很好-当处理流时抛出异常,我处理它,它是程序正常流的一部分(因为客户端可能只是断开连接)。与其他对象的ObjectDisposedException
相反,这确实是一个错误,我的代码中的一个bug。
因此,如果我可以让流抛出MyException
而不是常规的ObjectDisposedException
,我可以以不同的方式对待它。
其他能达到这个目的的建议也很好。
谢谢!
我认为如果你想发生这种情况,你将不得不捕获ObjectDisposedException
并重新抛出MyException
。
一个更好的选择(如果你控制你正在调用的代码)是让另一边的代码检查它是否已经被处理,并且不抛出ObjectDisposedException
,而只是返回而不做任何事情。
我不知道有什么方法可以做到这一点,但是您可以通过使用ObjectDisposedException
的ObjectName
属性来处理NetworkStream
抛出的所有异常并重新抛出其余异常来实现类似的行为。