问题描述
|
我看了看kohanaPHP,对错误的内部管理感到困惑。初始化框架时,Kohana允许您禁用错误的内部管理。启用后,所有错误(NOTICE,WARNING等)都将转换为使用ErrorException异常。 (http://PHP.net/manual/zh/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错误的方法正确吗?
解决方法
martswite所说的仅适用于2. *版本。不建议关闭3. *版本中的错误标志,因为这样会出现正常的PHP错误。
我的问题是:如果禁用Kohana的错误处理,是否存在破坏业务逻辑的风险?
如果您正在使用try catch来查看MySQL是否可以连接,则可以。
如果是这样,为什么Kohana可以禁用它?
这就是我交给开发人员的内容(http://dev.kohanaframework.org/issues/4017)。我不认为它会出现在3. *版本中,因此您不是唯一一个有点困惑的人。
根据您的这种方式来处理本地php错误的方法正确吗?
是的,我更喜欢包装一些可能会失败的东西...赶在方法前面添加@之前。它更加干净,并且与其他编程语言的工作方式更加内联。