35 lines
789 B
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);
|
|
}
|
|
}
|
|
|
|
} |