【发布时间】:2012-04-16 00:34:45
【问题描述】:
我们的应用程序是模块化的(一组做特定事情的模块)。这些模块具有事件处理程序。这些事件可以从其他模块或应用程序菜单中触发。
情况:
模块 A(具有 UI)收到一个事件“deleteitem”。事件参数应包含要删除的项目名称。但在这种情况下,它是空的。在某个地方,有人搞砸了。
问题:
模块应该抛出吗?请记住,该模块将在事件处理程序中抛出,并且可能会使应用程序崩溃,因为模块编写者不知道是否处理了异常。
上述场景是一个更大的问题的快照,该问题涉及从模块抛出异常,这可能导致应用程序崩溃。反对它的论点是应用程序可以在没有特定模块的情况下继续工作。那么,谁应该确保 - 模块或应用程序?
【问题讨论】:
-
如果不抛出还会发生什么,你想要吗?
-
如果没有抛出,应用程序将继续。我想要那个吗?-这就是问题所在。我不希望那样,因为我知道某处有问题。计数器参数是让应用程序继续,因为应用程序可以在没有模块执行操作的情况下继续。
标签: c# wpf modularity