Closed eegoworld closed 1 year ago
大多数业务设计上, 接口请求成功并不会出现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吧
我这里怎么没有那个 it.code ,提示没有
你去看下转换器里面怎么创建ResponseException的吧, 我有点解释不清楚这种问题
我血压比较高, 你这样容易让我住院, 我需要997一直干活没空一直来解惑
实在不会用就去用Retrofit吧, 那个几乎没人提这种问题, 可能更适合你使用
知道了,大佬受惊了,请你喝杯奶茶
很好框架,我要打赏
与其打赏不如加入吧, 开源的目的是为了集思广益贡献代码
用实体类解析,弹框就没法实现把,内部把 code 的逻辑处理了
处理方式: 去除泛型解析,用string解析,然后手动解析,去判断?