Browse Source

添加HttpResponseException/HttpFailureException

drake 3 năm trước cách đây
mục cha
commit
8a2af2d4fa

+ 4 - 3
net/src/main/java/com/drake/net/exception/ConvertException.kt

@@ -22,7 +22,8 @@ import okhttp3.Response
  * 转换数据异常
  */
 class ConvertException(
-    val response: Response,
+    response: Response,
     message: String? = null,
-    cause: Throwable? = null
-) : NetException(response.request, message, cause)
+    cause: Throwable? = null,
+    var tag: Any? = null
+) : HttpResponseException(response, message, cause)

+ 3 - 2
net/src/main/java/com/drake/net/exception/DownloadFileException.kt

@@ -8,5 +8,6 @@ import okhttp3.Response
 class DownloadFileException(
     response: Response,
     message: String? = null,
-    cause: Throwable? = null
-) : NetException(response.request, message, cause)
+    cause: Throwable? = null,
+    var tag: Any? = null
+) : HttpResponseException(response, message, cause)

+ 15 - 0
net/src/main/java/com/drake/net/exception/HttpFailureException.kt

@@ -0,0 +1,15 @@
+package com.drake.net.exception
+
+import okhttp3.Request
+
+/**
+ * 实现该接口表示Http请求失败
+ * @see NetUnknownHostException
+ * @see NetConnectException
+ * @see NetSocketTimeoutException
+ */
+open class HttpFailureException(
+    request: Request,
+    message: String? = null,
+    cause: Throwable? = null
+) : NetException(request, message, cause)

+ 15 - 0
net/src/main/java/com/drake/net/exception/HttpResponseException.kt

@@ -0,0 +1,15 @@
+package com.drake.net.exception
+
+import okhttp3.Response
+
+/**
+ * 实现该接口表示Http请求成功
+ * @see ResponseException HttpStatusCode 200...299
+ * @see RequestParamsException HttpStatusCode 400...499
+ * @see ServerResponseException HttpStatusCode 500...599
+ */
+open class HttpResponseException(
+    open val response: Response,
+    message: String? = null,
+    cause: Throwable? = null
+) : NetException(response.request, message, cause)

+ 1 - 1
net/src/main/java/com/drake/net/exception/NetConnectException.kt

@@ -6,4 +6,4 @@ class NetConnectException(
     request: Request,
     message: String? = null,
     cause: Throwable? = null
-) : NetException(request, message, cause)
+) : HttpFailureException(request, message, cause)

+ 1 - 3
net/src/main/java/com/drake/net/exception/NetException.kt

@@ -22,12 +22,10 @@ import java.io.IOException
 
 /**
  * Net网络异常
- *
- * @param request 请求信息
  * @param message 异常信息
  */
 open class NetException(
-    val request: Request,
+    open val request: Request,
     message: String? = null,
     cause: Throwable? = null
 ) : IOException(message, cause) {

+ 1 - 1
net/src/main/java/com/drake/net/exception/NetSocketTimeoutException.kt

@@ -6,4 +6,4 @@ class NetSocketTimeoutException(
     request: Request,
     message: String? = null,
     cause: Throwable? = null
-) : NetException(request, message, cause)
+) : HttpFailureException(request, message, cause)

+ 1 - 1
net/src/main/java/com/drake/net/exception/NetUnknownHostException.kt

@@ -6,4 +6,4 @@ class NetUnknownHostException(
     request: Request,
     message: String? = null,
     cause: Throwable? = null
-) : NetException(request, message, cause)
+) : HttpFailureException(request, message, cause)

+ 5 - 3
net/src/main/java/com/drake/net/exception/RequestParamsException.kt

@@ -22,6 +22,8 @@ import okhttp3.Response
  * 400 - 499 客户端请求异常
  */
 class RequestParamsException(
-    val response: Response,
-    message: String? = null
-) : NetException(response.request, message)
+    response: Response,
+    message: String? = null,
+    cause: Throwable? = null,
+    var tag: Any? = null
+) : HttpResponseException(response, message, cause)

+ 5 - 5
net/src/main/java/com/drake/net/exception/ResponseException.kt

@@ -20,10 +20,10 @@ package com.drake.net.exception
 
 import okhttp3.Response
 
-/**
- * 如果返回200但是返回数据不符合业务要求可以抛出该异常
- */
+/** 状态码在200..299, 但是返回数据不符合业务要求可以抛出该异常 */
 class ResponseException(
     response: Response,
-    message: String? = null
-) : NetException(response.request, message)
+    message: String? = null,
+    cause: Throwable? = null,
+    var tag: Any? = null
+) : HttpResponseException(response, message, cause)

+ 4 - 2
net/src/main/java/com/drake/net/exception/ServerResponseException.kt

@@ -23,6 +23,8 @@ import okhttp3.Response
  * >= 500 服务器异常
  */
 class ServerResponseException(
-    val response: Response,
+    response: Response,
     message: String? = null,
-) : NetException(response.request, message)
+    cause: Throwable? = null,
+    var tag: Any? = null
+) : HttpResponseException(response, message, cause)

+ 2 - 2
net/src/main/java/com/drake/net/interceptor/NetOkHttpInterceptor.kt

@@ -2,8 +2,8 @@ package com.drake.net.interceptor
 
 import com.drake.net.body.toNetRequestBody
 import com.drake.net.body.toNetResponseBody
+import com.drake.net.exception.HttpFailureException
 import com.drake.net.exception.NetConnectException
-import com.drake.net.exception.NetException
 import com.drake.net.exception.NetSocketTimeoutException
 import com.drake.net.exception.NetUnknownHostException
 import com.drake.net.okhttp.attachToNet
@@ -35,7 +35,7 @@ object NetOkHttpInterceptor : Interceptor {
         } catch (e: UnknownHostException) {
             throw NetUnknownHostException(request, cause = e)
         } catch (e: Throwable) {
-            throw NetException(request, cause = e)
+            throw HttpFailureException(request, cause = e)
         }
         val netResponseBody = response.body?.toNetResponseBody(request.downloadListeners()) {
             chain.call().detachFromNet()