NetException.create constructor

NetException.create(
  1. DioError error
)

Implementation

factory NetException.create(DioError error) {
  switch (error.type) {
    case DioErrorType.cancel:
      {
        return BadRequestException(-1, "请求取消");
      }
    case DioErrorType.connectionTimeout:
      {
        return BadRequestException(-1, "连接超时");
      }
    case DioErrorType.sendTimeout:
      {
        return BadRequestException(-1, "请求超时");
      }
    case DioErrorType.receiveTimeout:
      {
        return BadRequestException(-1, "响应超时");
      }
    case DioErrorType.badResponse:
      {
        try {
          int errCode = error.response?.statusCode ?? -1;
          // String errMsg = error.response.statusMessage;
          // return ErrorEntity(code: errCode, message: errMsg);
          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 NetException(
                    errCode, error.response?.statusMessage ?? "");
              }
          }
        } on Exception catch (_) {
          return NetException(-1, "未知错误");
        }
      }
    default:
      {
        return NetException(-1, error.message ?? "");
      }
  }
}