Должен ли я регистрировать ошибку, когда я ее бросаю так:
try { addOne(); } catch (Exception $e) { } function addOne($number) { if (empty($number)) { Log::instance()->add(Log::ERROR, $e->getMessage()); throw Exception('The incoming number is empty'); } return $number+1; }
или где я это поймаю?
try { addOne(); } catch (Exception $e) { Log::instance()->add(Log::ERROR, $e->getMessage()); } function addOne($number) { if (empty($number)) { throw Exception('The incoming number is empty'); } return $number+1; }
Как дни Rami, бросая ошибку / исключение внутри самого метода с описательным сообщением и регистрируя ошибку внутри блока catch, является хорошим решением. Это позволит вам иметь только одну команду регистрации для регистрации различного рода исключений, которые могут возникнуть в вашем коде. Ведение журнала, когда вы генерируете исключение, будет умножать сообщения журнала и увеличивать размер вашего кода без какого-либо добавленного значения, кроме того, если вы используете эту функцию в нескольких блоках catch, вы не сможете отслеживать, в какой из них она была неудачной.
Вы должны регистрировать ошибку, когда она была обнаружена (в catch), в противном случае ваш метод будет вызван даже тогда, когда он будет сбой, и никакая ошибка не будет зарегистрирована, если вы не хотите, чтобы журнал был успешным, тогда вы либо разместите его теперь или использовать, наконец, для его регистрации.