我试图确定什么是 PHP 异常处理的最佳实践。
例如,一个检查验证的基本函数:
public function myValidationChecker(MyForm $form, $dateFrom, $dateTo) {
try {
$start = $dateFrom->format('Y-m-d'); // could cause exception
$finish = $dateTo->format('Y-m-d'); // could cause exception
// lots more logic here
$diff = $dateTo->diff($dateFrom); // could cause different exception
// ... more non-exception causing logic
} catch (\Exception $e) {
$this->log($e->getMessage());
// attach error to $form so that code stops executing
// & display generic error message to user
}
}
我是否应该捕捉一个特定的异常,而不仅仅是\Exception
,例如,UnexpectedValueException
或者InvalidArgumentException
让捕捉围绕那个特定的、可怕的代码区域?
或者同样,最好围绕整个函数,以防出现我没有计划的例外情况?无论哪种方式,在此 catch 块中,都会阻止执行代码,因为在运行此函数后,$form
会检查错误消息。
您应该只捕获您知道如何处理的异常。不要只是抓住,因为你想要它,只在你需要的时候抓住它们。大多数情况下,异常应该冒泡并被通用记录器捕获,最好是 PHP 内置的记录器。
如果您知道如何处理异常,那么您就知道需要捕获什么。捕捉您需要处理的异常,让其他异常冒泡。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句