Fly*_*179 33 c# events exception
作为一般规则,是否有任何情况下,负责监听事件的方法可以引发异常(或允许抛出)引发事件的类必须处理?
鉴于此类异常会阻止其他侦听器随后被调用,但允许这种情况发生似乎有点"反社会",但另一方面,如果存在异常,它应该怎么办?
Jar*_*Par 21
从事件处理程序中抛出异常在很多方面类似于从IDisposable.Dispose
方法(或C++析构函数)抛出异常.这样做会给你的来电者造成严重破坏,因为你没有多少选择.
在所有这些#4中是最好的选择.但这很少做,也不能指望.
我认为在你的组件中你真的只有几个选择
应该从事件中产生的唯一两种类型的异常是严重的,可能是流程结束的异常,如System.OutOfMemoryException
或System.DllNotFoundException
,以及明显编程错误的东西,如System.StackOverflowException
或System.InvalidCastException
.捕获和删除这些异常绝不是一个好主意 - 让它们浮动到顶部,让开发人员决定在应用程序级别如何处理它们.
至于其余的......任何常见的或花园式的异常都System.IO.IOException
应该在你的事件中处理,你应该有一些机制来将这样的错误条件返回给调用者.
归档时间: |
|
查看次数: |
16021 次 |
最近记录: |