无法在php中捕获异常

时间:2018-01-11 10:18:01

标签: php exception try-catch

我编写了一个非常简单的代码来捕获PHP中的异常,但它仍然在页面上显示错误。我无法理解为什么它没有捕获异常。

<?php

try
{
    session_start();

    echo    ($counter);
}
catch(Exception $e)
{
    echo "caught exception";
}

?>

1 个答案:

答案 0 :(得分:1)

在php 7之前你只能捕获异常,而不是错误,但是从php 7开始,你有一个名为\ Throwable的新接口,它比普通异常更通用,并且引入了实现Throwable的Error类

http://php.net/manual/en/class.throwable.php

目前有两种类型的Throwable对象,即Exceptions和Errors, 所以现在你也可以捕获错误, 但是,致命错误仍会破坏您的代码

你可以尝试

<?php

try
{
    session_start();

    echo    ($counter);
}
catch(\Exception $e)
{
    echo "caught exception";
}
catch(\Error $e)
{
    echo "caught error";
}
或者你开车试试     

try
{
    session_start();

    echo    ($counter);
}
catch(\Throwable $e)
{
    echo "caught exception";
}