Когда пишется кастомный модуль, то обычно существует обработка ошибок с помощью watchdog или watchdog_exception. Стандартный вывод такого сообщения выглядит не информативно и мало-симпатично. Следующий пример обработки ошибки можно встретить достаточно часто:
<?php
try {
throw new Exception('Any message', 10);
}
catch (Exception $e) {
watchdog_exception('my_module', $e);
}
Он сохранит сообщение об ошибке в лог, которое будет выглядеть так (сорри за заблюренные данные, скрины сделаны с рабочего сайта =) ):
Чтобы исправить этот недостаток можно использовать сниппет:
<?php
function my_module_pretty_watchdog($e, $params = array()) {
$message = "<b>Message</b>: !message<br/>" .
"<b>Trace</b>: !trace<br/>" .
'<b>Params</b>: !params';
$trace = explode('#5', nl2br($e->getTraceAsString()));
watchdog('my_module', $message, array(
'!message' => $e->getMessage(),
'!trace' => str_replace('#', '  #', $trace[0]),
'!params' => '<pre>'.htmlspecialchars(print_r($params, TRUE)).'</pre>'
), WATCHDOG_ERROR, current_path());
}
В таком случае, тот же пример, с сохранением ошибки в лог:
<?php
try {
throw new Exception('Any message', 10);
}
catch (Exception $e) {
my_module_pretty_watchdog($e, array(
'first param' => 'data 1',
'second param' => 'data 2'
));
}
даст более привлекательное сообщение: