代码拉取完成,页面将自动刷新
<?php
namespace ModStart\Core\Exception;
class BizException extends \Exception
{
public $param = [];
/**
* 抛出业务异常,系统会统一处理
* @param $msg string 异常信息
* @param $param array 异常参数
* @throws BizException
* @example
* // 抛出异常消息
* BizException::throws( '参数错误' );
* // 使用自定义模板
* BizException::throws( '参数错误', ['view' => 'theme.default.customView','viewData'=>[ 'foo'=>'bar' ]] );
* // 使用自定义状态码,返回 404
* BizException::throws( '参数错误', ['statusCode' => 404]);
*/
public static function throws($msg, $param = [])
{
$e = new BizException($msg);
$e->param = $param;
throw $e;
}
/**
* 条件抛出业务异常,参数参考 throws 方法
* @param $msg string 异常信息
* @param $condition bool 条件
* @param $param array 异常参数
* @throws BizException
*/
public static function throwsIf($msg, $condition, $param = [])
{
if ($condition) {
$e = new BizException($msg);
$e->param = $param;
throw $e;
}
}
/**
* 如果 object 为空,抛出业务异常,参数参考 throws 方法
* @param $msg string 异常信息
* @param $object mixed 对象
* @param $param array
* @throws BizException
*/
public static function throwsIfEmpty($msg, $object, $param = [])
{
if (empty($object)) {
$e = new BizException($msg);
$e->param = $param;
throw $e;
}
}
/**
* 如果 object 不为空,抛出业务异常,参数参考 throws 方法
* @param $msg string 异常信息
* @param $object mixed 对象
* @param $param array
* @throws BizException
*/
public static function throwsIfNotEmpty($msg, $object, $param = [])
{
if (!empty($object)) {
$e = new BizException($msg);
$e->param = $param;
throw $e;
}
}
/**
* 如果 response 有错误,抛出业务异常,参数参考 throws 方法
* @param $response array 标准响应 ['code'=>0,'msg'=>'','data'=>[]]
* @param $prefix string 异常信息前缀
* @param $param array 异常参数
* @throws BizException
*/
public static function throwsIfResponseError($response, $prefix = '', $param = [])
{
if ($prefix) {
$prefix = $prefix . ':';
}
if (empty($response)) {
$e = new BizException($prefix . 'Response Empty');
$e->param = $param;
throw $e;
}
if ($response['code']) {
$e = new BizException($prefix . $response['msg']);
$e->param = $param;
throw $e;
}
}
/**
* 如果 $e 与 $messagePatterns 匹配,抛出业务异常
* @param $error \Exception|string 异常或错误
* @param $messagePatterns array 异常信息模板 ['pattern'=>'message']
* @param $messagePrefix string 异常信息前缀
* @param $isRegex bool 是否正则匹配
* @throws BizException
*/
public static function throwsIfMessageMatch($error, $messagePatterns, $messagePrefix = '', $isRegex = false)
{
if ($error instanceof \Exception) {
$error = $error->getMessage();
}
foreach ($messagePatterns as $pattern => $message) {
if ($isRegex) {
if (preg_match($pattern, $error)) {
BizException::throws($messagePrefix . $message);
}
} else {
if (strpos($error, $pattern) !== false) {
BizException::throws($messagePrefix . $message);
}
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。