繁体   English   中英

PHP中的Try / Catch无法捕获异常

[英]Exception not catch by Try/Catch in PHP

我试过这个例子:

<?php    
try {
    Not_Exist();
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}
?>

http://php.net/manual/zh/language.exceptions.php但未捕获到错误:

致命错误:在第3行的C:\\ Program Files(x86)\\ EasyPHP-DevServer-14.1VC9 \\ data \\ localweb \\ mysite \\ public_html \\ exception.php中调用未定义函数Not_Exist()

为什么? 我通常使用Dotnet。 也许我想念一些东西。

error也不例外。 PHP本身不会在语法错误(例如缺少函数)上引发异常。 您将需要set_error_handler()来“捕获”此类内容-即便如此,自定义错误处理程序也无法处理此类解析错误。

您的代码中没有抛出异常。 您只是遇到致命错误。 如果您想找到一种解决致命错误的方法,那么这篇文章可能会对您有所帮助。 如何捕获PHP致命错误

如果您尝试捕获异常,则如下所示:

try {
   throw new Exception("Exception Message");
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

因为那是fatal error ,所以也不例外。 您将要使用PHP的function_exists()方法并尝试执行以下操作:

try{
    function_exists(Not_Exist);
} catch (Exception $e) {
    // error here
}
// run Not_Exist here because we know its a valid function.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM