我正在 try catch 一个运行时异常,该异常将由一个基本上只是 oci_execute() 的包装函数的函数抛出。例如:
try {
$SQL = "INSERT";
ExecuteQuery($SQL);
} catch (Exception $e) {
echo "<p>There was an error.</p>";
echo $e->getMessage();
}
但是,异常似乎没有被捕获:
...
ociexecute() [function.ociexecute]: ORA-00925: missing INTO keyword
...
我是不是漏掉了什么?
最佳答案
看起来它正在触发错误而不是抛出异常。
您可以使用 set_error_handler()
将错误转换为异常- 像这样:
function errorHandler($number, $string, $file = 'Unknown', $line = 0, $context = array())
{
if (($number == E_NOTICE) || ($number == E_STRICT))
return false;
if (!error_reporting())
return false;
throw new Exception($string, $number);
return true;
}
set_error_handler('errorHandler');
关于php - 在 PHP 中捕获运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1259150/