我写一个类库,包装不同的对象 (主要是设备驱动程序的USB硬件组件)处理的OnError事件
这些设备驱动程序的一些类公开的一种“的OnError”的事件:在如果在设备驱动程序中发生运行时错误或其他错误,则触发该事件。喜欢的东西:
该解决方案的AddHandler oDevice.DriverRunTimeErrorEvent,
AddressOf HandleDriverRunTimeErrorEvent
Private Sub HandleDriverRunTimeErrorEvent(
ByVal sender As Object,
ByVal eventData As DriverRunTimeErrorEventArgs)
'handle the error
End Sub
肯定的是,如果发生错误,程序没有停止过,但我永远不会知道,如果我不使用的情况下是什么事。
现在,将设备驱动程序包装到我的类库中,我必须考虑必须传递给将使用我的类库的客户端,以及是否应该这样做。
我可以转发设备驱动程序解决方案并在类库中生成一个新事件。然后客户端应该处理转发的事件。
但我也可以扔了所有的错误信息
我可以简单地忽略错误,只是记录它在协议文件中的一个例外。
解决方案1.似乎对我更加强大,我会使用它,但它不是“靠近”.NET世界。
解决方案2.与程序流异步抛出错误:在客户端应用程序中,我不会有任何可以捕获它的try-catch块。换句话说,如果客户端没有调用该类的任何方法,该类就会抛出错误。 当然,我可以在应用程序级别捕获所有错误,但无论如何,这会在逻辑中引入一些我更喜欢避免的模糊性。
你将如何处理这些OnError事件?
我分裂了我最后一个类似的问题(http://stackoverflow.com/questions/7585336/handling-exceptions-in-a-class-library-enveloping-a-device-driver),因为我在OnError中看到事件更多的东西一个单独的问题。 – gingo