mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-26 20:52:44 +08:00
优化错误处理机制
This commit is contained in:
parent
ca67c15548
commit
aa641e5169
@ -11,6 +11,7 @@ use App\Library\Logger as AppLogger;
|
||||
use Phalcon\Config as PhConfig;
|
||||
use Phalcon\Di\Injectable;
|
||||
use Phalcon\Logger\Adapter\File as PhLogger;
|
||||
use Throwable;
|
||||
|
||||
class ConsoleErrorHandler extends Injectable
|
||||
{
|
||||
@ -18,10 +19,14 @@ class ConsoleErrorHandler extends Injectable
|
||||
public function __construct()
|
||||
{
|
||||
set_exception_handler([$this, 'handleException']);
|
||||
|
||||
set_error_handler([$this, 'handleError']);
|
||||
|
||||
register_shutdown_function([$this, 'handleShutdown']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Throwable $e
|
||||
* @param Throwable $e
|
||||
*/
|
||||
public function handleException($e)
|
||||
{
|
||||
@ -45,6 +50,31 @@ class ConsoleErrorHandler extends Injectable
|
||||
echo $content . PHP_EOL;
|
||||
}
|
||||
|
||||
public function handleError($errNo, $errStr, $errFile, $errLine)
|
||||
{
|
||||
if (in_array($errNo, [E_WARNING, E_NOTICE, E_DEPRECATED, E_USER_WARNING, E_USER_NOTICE, E_USER_DEPRECATED])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$logger = $this->getLogger();
|
||||
|
||||
$logger->error("Error [{$errNo}]: {$errStr} in {$errFile} on line {$errLine}");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function handleShutdown()
|
||||
{
|
||||
$error = error_get_last();
|
||||
|
||||
if ($error !== NULL && in_array($error['type'], [E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR])) {
|
||||
|
||||
$logger = $this->getLogger();
|
||||
|
||||
$logger->error("Fatal Error [{$error['type']}]: {$error['message']} in {$error['file']} on line {$error['line']}");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return PhConfig
|
||||
*/
|
||||
|
@ -23,6 +23,10 @@ class HttpErrorHandler extends Injectable
|
||||
public function __construct()
|
||||
{
|
||||
set_exception_handler([$this, 'handleException']);
|
||||
|
||||
set_error_handler([$this, 'handleError']);
|
||||
|
||||
register_shutdown_function([$this, 'handleShutdown']);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -45,6 +49,31 @@ class HttpErrorHandler extends Injectable
|
||||
}
|
||||
}
|
||||
|
||||
public function handleError($errNo, $errStr, $errFile, $errLine)
|
||||
{
|
||||
if (in_array($errNo, [E_WARNING, E_NOTICE, E_DEPRECATED, E_USER_WARNING, E_USER_NOTICE, E_USER_DEPRECATED])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$logger = $this->getLogger();
|
||||
|
||||
$logger->error("Error [{$errNo}]: {$errStr} in {$errFile} on line {$errLine}");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function handleShutdown()
|
||||
{
|
||||
$error = error_get_last();
|
||||
|
||||
if ($error !== NULL && in_array($error['type'], [E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR])) {
|
||||
|
||||
$logger = $this->getLogger();
|
||||
|
||||
$logger->error("Fatal Error [{$error['type']}]: {$error['message']} in {$error['file']} on line {$error['line']}");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Throwable $e
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user