.net - 类库应该如何向用户/UI 呈现通知?

标签 .net events exception class-library

正常使用您正在编写的 .NET 库时,或多或少会发生一些事情。您需要通知用户/UI/调用者此事件已发生,即使它是预期的并且不是异常的。你:

A) 抛出异常,让 UI 捕捉并处理。

B) 引发 UI 可以监听的某种类型的事件。

C) 做其他事情

你会做以上哪一个?如果两者兼而有之,您对何时抛出异常与引发事件的指导方针是什么?各自的优缺点是什么?

编辑:

这是我面临的一个例子。我的库使用第三方应用程序通过启动第三方应用程序并将 XML 文件作为参数传递来打印运输标签,该参数作为批处理类型操作进行处理。如果第三方应用程序已被用户打开,则必须先将其关闭,然后我的库才能调用它进行批处理操作。我的库检查应用程序是否正在运行,如果是,它只是停止并需要通知用户他们应该关闭第三方应用程序并重试。我完全希望这会作为图书馆正常使用的一部分发生。抛出异常,还是引发事件?

最佳答案

这听起来确实像是事件是最合适的方法。除非您有一个无法实现其主要目的的方法,否则我看不出为什么异常是正确的做事方式。

一般来说,“通知”应该建议一个事件......

如果您能提供更多关于您正在考虑的情况的示例 - 特别是任何您倾向于异常(exception)的情况 - 我们可能会提供更多帮助。

关于.net - 类库应该如何向用户/UI 呈现通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312250/

相关文章:

c# - 使用 C# 进行输入验证和异常

.net - 最终用户是否需要 .NET 3.5 或 .NET 4.0 才能运行 Silverlight 3 和 4 应用程序?

events - 自定义UICollectionViewCell中的 View 未接收到触摸事件

c# - 面向对象的 Linq2Sql 查询类

javascript - 只在 div 内监听点击而不干扰它的 child (一个 hitbox)?

asp.net - VS 2008 中“事件”选项卡随机出现和消失

c# - 您如何查看 VS2015 中的 Intellisense 抛出哪些异常?

java - libGDX 中的枚举出现 ExceptionInInitializerError

c# - 隐式 <> 显式接口(interface)

c# - .NET DateTime 会截断我的秒数吗?