博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
try-catch使用反思(-)
阅读量:4965 次
发布时间:2019-06-12

本文共 707 字,大约阅读时间需要 2 分钟。

在实现okhttp监控功能的时候, 我是用的addInterceptor方式, 代码大概是这样的:

 

public class MyIntercept implements Interceptor{      public Response intercept(Interceptor.Chain chain) throw IOException{           Response ret = null;            try{                    //代码                     ret = chain.proceed(chain.request);                    //代码              }catch (Exception e){                 }            return ret;      }}

 

 

这么写本意是不能抛出任何异常, 防止用户代码崩溃, 可是后来用户没有网络的时候还是出现了空指针异常。

经过排查和思考,发现我这里try-catch处理了用户的代码, chain.proceed()这个是可能产生异常的,但是窝处理了,所以ret = null 返回给调用者了, 发现问题后我将ret = chain.proceed()放到try-catch外面来,问题成功解决。

 

     总之,try-catch只处理自己的代码, 用户或者系统的代码不要管, 如果抛异常,让用户或者系统处理。

转载于:https://www.cnblogs.com/zhangyan-2015/p/5784625.html

你可能感兴趣的文章
在64位linux上编译32位程序 for i386 intel
查看>>
animation动画案例
查看>>
《PHP字符串函数》笔记
查看>>
android studio 编译NDK android studio 生成.so文件
查看>>
场景调研
查看>>
DICOM image viewers
查看>>
css清除浮动clearfix:after的用法详解(转)
查看>>
可以在浏览器中在线编辑office文件的扩展程序汇总
查看>>
程序员工资一般多少
查看>>
2018.4.22
查看>>
iOS开发之多媒体API(1)
查看>>
让iOS应用支持不同版本的系统与设备
查看>>
日期 function
查看>>
Java 连接池的工作原理
查看>>
poj1970 The Game(DFS)
查看>>
poj1040 Transportation(DFS)
查看>>
ubuntu16.04编译安装mysql5.7
查看>>
JavaScript面向对象之对象的声明、遍历和存储
查看>>
H5离线缓存
查看>>
python&数据分析&数据挖掘--参考资料推荐书籍
查看>>