最近,我正在学习PHP
withCodeIgniter
框架。db_debug = TRUE
我正在研究异常处理,但让我感到惊讶的是,在database.php
设置中异常处理不适用于数据库错误。
如果db_debug = FALSE
,我可以抛出并捕获错误,但是当它是 时TRUE
,它会直接显示带有数据库错误的页面。
这是我的代码:
在Model
:
$this->db->insert('tbl_name',$data);
if (strpos($this->db->_error_message(),'constraint_name') !== FALSE)
{
throw new UniqueConstraintException($this->db->_error_message()); // UniqueConstraintException is customized excpetion
}
在Controller
:
try
{
//calling the method from model having above code
}
catch(UniqueConstraintException $ex)
{
echo "There is already item with same item name";
}
catch(Exception $ex)
{
echo $ex->getMessage();
}
即使有db_debug = TRUE
设置,我可以对数据库错误进行异常处理吗?