webman_duanju/app/exception/SysException.php

35 lines
789 B
PHP

<?php
namespace app\exception;
use app\enums\ErrEnums;
use Exception;
class SysException extends \RuntimeException
{
public function __construct($data = [
'msg' => '',
'args' => [],
'code' => 500
], ...$args)
{
if ($data instanceof ErrEnums) {
parent::__construct($data->value, $data->code());
}else if (is_string($data)) {
if (!empty($args)) {
$data = format($data, $args);
}
parent::__construct($data, 500);
}
else{
$val = $data['msg'];
if (isset($data['args'])) {
$val = format($data['msg'], $data['args']);
}
parent::__construct($val, isset($data['code']) ?? 500);
}
}
}