正常使用您正在编写的 .NET 库时,或多或少会发生一些事情。您需要通知用户/UI/调用者此事件已发生,即使它是预期的并且不是异常的。你:
A) 抛出异常,让 UI 捕捉并处理。
B) 引发 UI 可以监听的某种类型的事件。
C) 做其他事情
你会做以上哪一个?如果两者兼而有之,您对何时抛出异常与引发事件的指导方针是什么?各自的优缺点是什么?
编辑:
这是我面临的一个例子。我的库使用第三方应用程序通过启动第三方应用程序并将 XML 文件作为参数传递来打印运输标签,该参数作为批处理类型操作进行处理。如果第三方应用程序已被用户打开,则必须先将其关闭,然后我的库才能调用它进行批处理操作。我的库检查应用程序是否正在运行,如果是,它只是停止并需要通知用户他们应该关闭第三方应用程序并重试。我完全希望这会作为图书馆正常使用的一部分发生。抛出异常,还是引发事件?
最佳答案
这听起来确实像是事件是最合适的方法。除非您有一个无法实现其主要目的的方法,否则我看不出为什么异常是正确的做事方式。
一般来说,“通知”应该建议一个事件......
如果您能提供更多关于您正在考虑的情况的示例 - 特别是任何您倾向于异常(exception)的情况 - 我们可能会提供更多帮助。
关于.net - 类库应该如何向用户/UI 呈现通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312250/