我知道一般的或“全线”的异常处理是一个很大的禁忌,但我相信在这种情况下它是可以的。有没有办法在C#中的静态类中捕获某种类型的所有异常?
考虑一下BinaryWriter/BinaryReader操作的一些自定义包装。 (是的,我知道.NET序列化)在这个类的所有方法中,都有可能存在某些异常,例如传递一个字节[],对于您尝试读取的数据来说太短它或试图读取不正确的类型。
因此,所有这些不同的写入/读取数据的方法,我想以某种方式处理此类中抛出的某些异常的所有实例。例如,每当抛出一个EndOfStreamException
时,返回错误状态或设置特定标志。
有没有一个干净的/好的方法来做到这一点,每次读/写操作周围扔try/catch?或者,这仍然是一个不容否认的问题,因为图书馆的用户应该试着自己去接听课程的电话?
二进制打字机/阅读器功能已经在我自己的对象中。问题是有许多不同的功能(针对不同类型的写入/读取),我试图绕过每一个尝试/捕获这些功能。 – mphair 2010-07-30 17:27:38
@mphair - 如果您有多个函数,每个函数都会调用多个读/写函数,那么您无法避免这种情况。如果你有一个函数(比如'Serialize()')调用很多其他函数,那么你可以在那里捕获异常。 – 2010-07-30 17:31:21