Kohana - ErrorException

时间:2011-05-24 07:54:33

标签: php kohana

我正在看看kohanaphp,我对错误的内部管理感到困惑。初始化框架时,Kohana使您能够禁用内部错误管理。启用后,所有错误(NOTICE,WARNING等)都将转换为使用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());
}

我的问题是:如果我禁用Kohan的错误处理,就有可能破坏业务逻辑?如果是这样,为什么Kohana可以禁用?或者有什么东西逃脱了我?

根据你这种处理错误本机php的方式正确吗?

1 个答案:

答案 0 :(得分:2)

什么martswite说只适用于2. *版本。不建议关闭3. *版本中的错误标志,因为您将获得正常的PHP错误。

  

我的问题是:如果我禁用Kohana的错误处理,就有可能破坏业务逻辑?

如果您正在使用try catch来查看MySQL是否可以连接,那么是。

  

如果是这样,为什么Kohana可以禁用?

这是我向开发人员提出的问题(http://dev.kohanaframework.org/issues/4017)。我认为它没有任何理由在3. *版本中出现,所以你不是唯一一个有点困惑的人。

  

根据你这种处理错误本机php的方式正确吗?

是的,我更喜欢在尝试中包装可能失败的东西...赶上前面的@方法。它更清晰,更符合其他编程语言的工作方式。