PHP尝试捕获异常

PHP尝试捕获异常,php,exception,exception-handling,Php,Exception,Exception Handling,您好,我有这样一个代码: try { // Here I call my external function do_some_work() } catch(Exception $e){} 问题是:如果do\u some\u work()出现问题并产生错误,则此try catch将隐藏错误?如果do\u some\u work()引发异常,则会捕获并忽略该异常 try/catch构造对标准PHP错误没有影响,只对异常有影响 产生致命错误 不,catch无法捕获致命错误。您甚至不能

您好,我有这样一个代码:

try
{
    // Here I call my external function
    do_some_work()
}
catch(Exception $e){}
问题是:如果do\u some\u work()出现问题并产生错误,则此try catch将隐藏错误?

如果
do\u some\u work()
引发异常,则会捕获并忽略该异常

try/catch构造对标准PHP错误没有影响,只对异常有影响

产生致命错误

不,catch无法捕获致命错误。您甚至不能使用错误处理程序

如果您想捕获所有其他错误,请查看并专门使用:


PHP中有两种类型的错误。有例外,也有错误

try..catch
将处理异常,但不会处理错误

为了捕获PHP错误,您需要使用


简化事情的一种方法是让
set\u error\u handler()
在遇到错误时抛出异常。如果你这样做,你需要小心行事,因为它可能会引起各种各样的麻烦,但这将是一种让
try..catch
处理所有PHP错误的方法。

你可以,但你需要启用它。请注意
set\u error\u handler()
不能像@hakre在回答中所说的那样处理致命错误。
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");

/* Trigger exception */
strpos();