-
Notifications
You must be signed in to change notification settings - Fork 1.6k
exceptions错误抛出
目录结构:
├─exceptions
│ AdminException.php
│ ApiException.php
│ AuthException.php
│ SmsException.php
│ TemplateException.php
│ UploadException.php
│ WechatReplyException.php
通常使用在逻辑处理中出现错误,可直接调用抛出异常然后在app\ExceptionHandle.php
内的render方法中处理异常是否抛出怎样的响应结果;
由于系统属于多应用通常异常处理都在某个应用下的ExceptionHandle.php
下已经处理完所有的异常
- AdminException 属于后台admin应用通用异常抛出
- ApiException 属于api应用通用异常抛出
- AuthException 属于登录授权异常抛出
- SmsException 属于短信发送异常抛出
- TemplateException 属于模板消息异常抛出,使用在模板消息发送服务
- UploadException 属于上传异常抛出,使用在Upload上传服务上
- WechatReplyException 属于微信回复消息异常抛出,暂时没有使用
使用方式:use crmeb\exceptions\AdminException;
使用场景:后台接口发成错误或者发生逻辑行错误或者逻辑手动抛异常错误的时候调用
例如:
use app\model\user\User;
if (!User::find(1)) {
throw new AdminException ('用户不存在,发生错误了');
}
或者
throw new AdminException ([400,'错误']);
使用方式:use \crmeb\exceptions\AuthException;
使用场景:授权发成错误或者发生逻辑行错误的时候调用
例如:
throw new AuthException('授权失败');
使用方式:use crmeb\exceptions\ApiException;
使用场景:接口中调用第三方服务接口时发生错误信息的时候调用
例如:
throw new ApiException('快递公司编码缺失');
使用方式:use crmeb\exceptions\PayException;
使用场景:支付宝支付服务类 crmeb\services\AliPayService.php 内部发生错误或者抛异常的时候调用
例如:
throw new PayException('失败原因:' . $result->msg . ',' . $result->subMsg);
使用方式:use crmeb\exceptions\UploadException;
使用场景:文件上传服务类内部发生错误和对资源进行操作时调用:
:-: 本地上传: /crmeb/services/upload/storage/Local.php
:-: 腾讯云COS文件上传: /crmeb/services/upload/storage/Cos.php
:-: 阿里云OSS上传:/crmeb/services/upload/storage/Oss.php
:-: 七牛云上传:/crmeb/services/upload/storage/Qiniu.php
:-: 资源操作: /app/services/system/attachment/SystemAttachmentServices.php
例如:
throw new UploadException('上传失败');