mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-03-17 20:54:52 +08:00
refactor ZMException
This commit is contained in:
parent
02003b2bd3
commit
5f4a00c77e
@ -4,7 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace ZM\Bootstrap;
|
||||
|
||||
use OneBot\Driver\ExceptionHandler;
|
||||
use OneBot\Exception\ExceptionHandler;
|
||||
use ZM\Exception\Handler;
|
||||
|
||||
class HandleExceptions
|
||||
|
||||
@ -6,22 +6,17 @@ namespace ZM\Exception;
|
||||
|
||||
class ConfigException extends ZMException
|
||||
{
|
||||
public const UNSUPPORTED_FILE_TYPE = 'E00079';
|
||||
public const UNSUPPORTED_FILE_TYPE = 79;
|
||||
|
||||
public const LOAD_CONFIG_FAILED = 'E00080';
|
||||
|
||||
public function __construct($err_code, $message = '', $code = 0, \Throwable $previous = null)
|
||||
{
|
||||
parent::__construct(zm_internal_errcode($err_code) . $message, $code, $previous);
|
||||
}
|
||||
public const LOAD_CONFIG_FAILED = 80;
|
||||
|
||||
public static function unsupportedFileType(string $file_path): ConfigException
|
||||
{
|
||||
return new self(self::UNSUPPORTED_FILE_TYPE, "不支持的配置文件类型:{$file_path}");
|
||||
return new self("不支持的配置文件类型:{$file_path}", "请检查配置文件的后缀名是否正确", self::UNSUPPORTED_FILE_TYPE);
|
||||
}
|
||||
|
||||
public static function loadConfigFailed(string $file_path, string $message): ConfigException
|
||||
{
|
||||
return new self(self::LOAD_CONFIG_FAILED, "加载配置文件失败:{$file_path},{$message}");
|
||||
return new self("加载配置文件失败:{$file_path},{$message}", "请检查配置文件的格式是否正确,并尝试按照错误信息排查", self::LOAD_CONFIG_FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,14 +4,14 @@ declare(strict_types=1);
|
||||
|
||||
namespace ZM\Exception;
|
||||
|
||||
use OneBot\Driver\ExceptionHandler;
|
||||
use OneBot\Exception\ExceptionHandler;
|
||||
use OneBot\Exception\ExceptionHandlerInterface;
|
||||
|
||||
class Handler extends ExceptionHandler
|
||||
class Handler extends ExceptionHandler implements ExceptionHandlerInterface
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// 我们知道此处没有调用父类的构造函数,这是设计上的缺陷
|
||||
// 将会在稍后修复
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function handle(\Throwable $e): void
|
||||
@ -21,12 +21,6 @@ class Handler extends ExceptionHandler
|
||||
// TODO
|
||||
}
|
||||
|
||||
if (is_null($this->whoops)) {
|
||||
ob_logger()->error('Uncaught ' . get_class($e) . ': ' . $e->getMessage() . ' at ' . $e->getFile() . '(' . $e->getLine() . ')');
|
||||
ob_logger()->error($e->getTraceAsString());
|
||||
return;
|
||||
}
|
||||
|
||||
// $this->whoops->handleException($e);
|
||||
$this->handle0($e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,13 @@ declare(strict_types=1);
|
||||
|
||||
namespace ZM\Exception;
|
||||
|
||||
use Throwable;
|
||||
|
||||
class InitException extends ZMException
|
||||
{
|
||||
public function __construct(string $message = '', int $code = 0, ?Throwable $previous = null)
|
||||
{
|
||||
// TODO: change this to a better error message
|
||||
parent::__construct($message, '', $code, $previous);
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,7 +10,8 @@ class InterruptException extends ZMException
|
||||
|
||||
public function __construct($return_var = null, $message = '', $code = 0, \Throwable $previous = null)
|
||||
{
|
||||
parent::__construct($message, $code, $previous);
|
||||
// TODO: change this to a better error message
|
||||
parent::__construct($message, '', $code, $previous);
|
||||
$this->return_var = $return_var;
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ class InvalidArgumentException extends ZMException
|
||||
{
|
||||
public function __construct($message = '', $code = 0, \Throwable $previous = null)
|
||||
{
|
||||
parent::__construct(zm_internal_errcode('E00074') . $message, $code, $previous);
|
||||
// TODO: change this to a better error message
|
||||
parent::__construct($message, '', 74, $previous);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,12 @@ declare(strict_types=1);
|
||||
|
||||
namespace ZM\Exception;
|
||||
|
||||
use Throwable;
|
||||
|
||||
abstract class ZMException extends \Exception
|
||||
{
|
||||
public function __construct(string $description, string $solution = '', int $code = 0, ?Throwable $previous = null)
|
||||
{
|
||||
parent::__construct($description . PHP_EOL . $solution, $code, $previous);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user