liangjingkanji/Net

要弹框,怎么处理

Closed this issue · 10 comments

用实体类解析,弹框就没法实现把,内部把 code 的逻辑处理了
image

处理方式:
去除泛型解析,用string解析,然后手动解析,去判断?

image

大多数业务设计上, 接口请求成功并不会出现code/msg这种字段, 仅错误情况下才需要

// 成功
{
   "name":"订单名称"
   "orderId": 23141312312312321
}

// 失败
{
  "code": "401203"
  "msg": "订单已重复"
}

如果状态码200视为成功数据(直接解析为数据类), 如果状态码400视为错误数据(转换器抛出异常)

那么既然是错误情况, 你在catch里面去根据异常对象获取code/msg然后弹窗不就好了

scope {
   // ....
}.catch {
  if (it is ResponseException) {
     it.code
  }
}

所有的异常都可以自定义, 你只要在NetConvert里面抛出就能在catch里面接受到. 任何数据都可以传递

令我感到不可思议, 明明code都不为正确值为什么你依然认为应该在scope里面处理? 那你认为什么情况下才需要catch?

协程运行只会考虑正常情况, 任何不正常情况都应当抛出异常由异常处理回调去执行

善用异常处理是成熟开发者必备技能

一下,没转换过来,新框架需要适应

get 不到大佬的精髓

下次买个Mac吧

image
我这里怎么没有那个 it.code ,提示没有

你去看下转换器里面怎么创建ResponseException的吧, 我有点解释不清楚这种问题

我血压比较高, 你这样容易让我住院, 我需要997一直干活没空一直来解惑

实在不会用就去用Retrofit吧, 那个几乎没人提这种问题, 可能更适合你使用

image
知道了,大佬受惊了,请你喝杯奶茶

很好框架,我要打赏

与其打赏不如加入吧, 开源的目的是为了集思广益贡献代码