我的方法应该抛出异常吗?

时间:2009-08-26 16:58:08

标签: php exception

我的PHP Web应用程序分为模块,我使用数据模型和数据映射器模式。我的mapper方法是静态的,它们专门用于与数据库交互。

我有以下方法:

ModuleMapper::getRecordCountByModuleIdAndSiteId($moduleId, $siteId)

此方法仅适用于模块的集合列表(我有充分的理由)。如果为该集合列表之外的模块调用此方法,则抛出异常是否合理(例如,“无法检索此模块的记录计数。”)。

try {
  $recordCount = ModuleMapper::getRecordCountByModuleIdAndSiteId($moduleId, $siteId);
}
catch (Exception $e) {
  // handle exception
}

另一种选择是返回0。

1 个答案:

答案 0 :(得分:1)

取决于你真正想要如何处理错误。我使用zend框架自动捕获异常并将它们转发到错误控制器以进行漂亮的显示和记录。显然,除非你明确地捕获它,否则该方法将终止处理。但它简化了错误显示和记录。

您也可以返回0并执行 if 语句以显示内联消息,或者捕获错误并显示内联消息。