swoole 致命错误是什么意思

2020-08-20 06:39:43

swoole 致命错误是什么?

捕获Server运行期致命错误

Server运行期一旦发生致命错误,那客户端连接将无法得到回应。如Web服务器,如果有致命错误应当向客户端发送Http 500 错误信息。

在PHP中可以通过register_shutdown_function + error_get_last 2个函数来捕获致命错误,并将错误信息发送给客户端连接。具体代码示例如下:

register_shutdown_function('handleFatal');function handleFatal(){    $error = error_get_last();    switch ($error['type'] ?? null) {        case E_ERROR :        case E_PARSE :        case E_CORE_ERROR :        case E_COMPILE_ERROR :            $message = $error['message'] . PHP_EOL;            if (isset($_SERVER['REQUEST_URI'])) {                $message .= '[QUERY] ' . $_SERVER['REQUEST_URI'];            }            // log or send:            // error_log($message);            // $server->send($fd, $message);            break;    }}