Кохана - ErrorException - PullRequest
       1

Кохана - ErrorException

0 голосов
/ 24 мая 2011

Я смотрю на kohanaphp, и я был озадачен внутренним управлением ошибками. Когда вы инициализируете структуру, Kohana дает вам возможность отключить внутреннее управление ошибками. При включении все ошибки (УВЕДОМЛЕНИЕ, ПРЕДУПРЕЖДЕНИЕ и т. Д.) Преобразуются в исключения исключения ErrorException (http://php.net/manual/en/class.errorexception.php)

Kohana широко использует эту систему для обнаружения ошибок, генерируемых php, в виде исключений. Пример:

try
{
    $this->_connection = mysql_connect($hostname, $username, $password, TRUE);
}
catch (ErrorException $e)
{
    // error connection.
    throw new Database_Exception(':error', array(':error' => mysql_error()), mysql_errno());
}

У меня такой вопрос: если я отключу обработку ошибок Кохана, есть ли риск испортить бизнес-логику? И если да, то почему Kohana делает возможным отключение? Или что-то ускользает от меня?

По вашему мнению, этот способ исправления ошибок нативного php правильный?

1 Ответ

2 голосов
/ 24 мая 2011

То, что сказал martswite, относится только к версии 2. *. Отключать флаг ошибки в 3. * выпусках не рекомендуется, так как вы получите обычные ошибки PHP.

У меня такой вопрос: если я отключу обработку ошибок Kohana, есть риск повреждения бизнес-логики?

Если вы используете команду catch для проверки соединения MySQL, тогда да.

И если да, то почему Кохана позволяет отключить?

Это то, что я сказал разработчикам (http://dev.kohanaframework.org/issues/4017). Я не вижу причин, по которым он должен присутствовать в версии 3. *, так что вы не единственный, кто немного запутался.

По вашему мнению, этот способ исправления ошибок нативного php правильный?

Да, я предпочитаю оборачивать что-то, что может потерпеть неудачу при попытке ... перехватить предваряющий @ в начале метода. Это чище и более понятно, как работают другие языки программирования.

...