我在下面遇到了这个函数,我想知道这是否是使用 try/catch 错误处理的正确方法。
public function execute()
{
$lbReturn = false;
$lsQuery = $this->msLastQuery;
try
{
$lrResource = mysql_query($lsQuery);
if(!$lrResource)
{
throw new MysqlException("Unable to execute query: ".$lsQuery);
}
else
{
$this->mrQueryResource = $lrResource;
$lbReturn = true;
}
}
catch(MysqlException $errorMsg)
{
ErrorHandler::handleException($errorMsg);
}
return $lbReturn;
}
最佳答案
在代码方面它是正确的/有效的,但是 try-catch 的强大之处在于,当您正在调用的某个函数中从深处抛出异常时。
因为“停止执行中间函数并一直跳回到 catch block ”。
在这种情况下,没有深层异常,因此我会这样写:
(假设在 ErrorHandler 中有一个函数“handleErrorMessage”。)
public function execute() {
$lsQuery = $this->msLastQuery;
$lrResource = mysql_query($lsQuery);
if(!$lrResource) {
ErrorHandler::handleErrorMessage("Unable to execute query: ".$lsQuery);
return false;
}
$this->mrQueryResource = $lrResource;
return true;
}
我觉得它更具可读性。
关于php - 使用 throw try catch 错误处理的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/765173/