为什么这个PHP行没有打印错误消息?

时间:2014-03-06 10:03:21

标签: php

在我的一个文件中,我写了这些陈述。它不是打印错误消息而是生成具有正常错误的页面。

try {
            $var = 90 / 0; // Error dvide by zero
    } catch (Exception $e) {
            die( 'Something really gone wrong');
    }

1 个答案:

答案 0 :(得分:0)

PHP错误与PHP异常不同。在您的脚本中,不会抛出任何异常 - 只发生错误。

如果安装自定义错误处理程序,则可能会得到相同的结果:

<?php
// install a temporary error handler
set_error_handler(function($error) {
    die("Something really wrong");
});

// do something invalid
$var = 90 / 0; // Error dvide by zero

// restore previous error handler
restore_error_handler();
?>

如果您真的是异常的粉丝,您还可以安装一个错误处理程序,自动将错误转换为PHP异常:

<?php
// install an error handler that turns error into exceptions
set_error_handler(function($error) {
    throw new Exception($error);
});

// open try-catch block to catch exceptions
try
{
    // do something invalid
    $var = 90 / 0; // Error dvide by zero
}
catch (Exception $exception)
{
    // oops
    die("Something really wrong");
}

?>