我们的应用程序是模块化的(模块组执行特定的事情).这些模块具有事件处理程序.可以从其他模块或应用程序菜单触发这些事件.
情况:
模块A(具有UI)接收事件"deleteitem".事件参数应包含要删除的项目名称.但在这种情况下它是null.在某个地方,有人搞砸了什么.
问题(S):
模块应该抛出吗?记住,该模块将抛入事件处理程序并可能导致应用程序崩溃,因为模块编写者不知道是否处理了异常.
上述场景是关于从模块excpetions这可能导致应用程序崩溃的投掷一个更大的问题的snaphot.反对它的论点是应用程序可以在没有特定模块的情况下继续工作.那么,谁应该确保 - 模块或应用程序?
如果项目名称是预期永远存在的东西并且它null是一个特殊的情况,这应该永远不会发生,你应该抛出现在你的应用程序处于一个永远不会发生的未知状态
如果这是调用者可以从中恢复的东西,他们将编写自己的异常处理例程来处理它.