AppException.create constructor

AppException.create(
  1. DioError error,
  2. int type
)

Implementation

factory AppException.create(DioError error, int type) {
  switch (error.type) {
    // case DioErrorType.cancel:
    //     return BadRequestException(-1, "请求取消");
    case DioErrorType.connectTimeout:
      return BadRequestException(-1, "连接超时");
    case DioErrorType.sendTimeout:
      return BadRequestException(-1, "请求超时");
    case DioErrorType.receiveTimeout:
      return BadRequestException(-1, "响应超时");
    case DioErrorType.response:
      try {
        int? errCode = error.response!.statusCode;
        switch (errCode) {
          case 400:
            return BadRequestException(errCode!, "请求语法错误");
          case 401:
            return UnauthorisedException(errCode!, "没有权限");
          case 403:
            return UnauthorisedException(errCode!, "服务器拒绝执行");
          case 404:
            return UnauthorisedException(errCode!, "无法连接服务器");
          case 405:
            return UnauthorisedException(errCode!, "请求方法被禁止");
          case 500:
            return UnauthorisedException(errCode!, "服务器内部错误");
          case 502:
            return UnauthorisedException(errCode!, "无效的请求");
          case 503:
            return UnauthorisedException(errCode!, "服务器挂了");
          case 505:
            return UnauthorisedException(errCode!, "不支持HTTP协议请求");
          default:
            return AppException(errCode!, error.response!.statusMessage!);
        }
      } on Exception catch (_) {
        return AppException(-1, "未知错误");
      }
    default:
      if (type == 1) {
        return AppException(-1, error.error?._message);
      } else {
        return AppException(-1, error.error.message);
      }
  }
}