【发布时间】:2015-10-28 08:07:14
【问题描述】:
每个人都在谈论异常处理的重要性。直到最近我才需要处理它们:
try {
$pdo = new PDO($dns);
} catch (Exception $e) {
throw new Exception($e);
}
另一个更一般的例子是:
if ($something) {
throw new Exception('Ouch! I can't do that!');
}
经过一些在线研究,我发现网上的许多示例/解决方案只是简单地呼应了它们。 (PDO Exception Questions - How to Catch Them) 有些没有解决方案。 (Catching PDOException in lower layer and re-throwing as different exception to upper layer) & (Where to catch exception in PHP MVC application?) 还有其他的,我就是不明白。 (Where to catch exceptions)
问题#1:我应该在哪里捕获异常;在 MVCish 框架的模型或控制器中?
问题 #2: 捕获它应该怎么做?记录、发送电子邮件、显示 503?
【问题讨论】:
-
这是处理 PDO 所以它的数据库,那些异常应该在模型层处理。
-
您必须在可以处理的地方捕获它...如果“PDO”出现错误,您是否可以立即处理(即重试或忽略它),或者确实它使应用程序崩溃? (所以你必须在更高的层次上重新抛出它......)
-
这是你的 MVC,你可以随心所欲。我肯定会记录它,并显示错误消息。
-
@CodeGodie 那么如果 PDO 连接丢失,我应该在模型中记录/显示 503 吗?这与我读过的很多内容背道而驰。
标签: java php .net pdo frameworks