开发者社区> 问答> 正文

[@炯轩][¥20]如何优雅的处理异常(java)?

我看开源中国的很多源码,比如负责从网络解析数据,从数据库的操作都抛异常。这么做的原因是什么。是不是通常情况下,返回值是void的方法一般都抛出异常(如果有的话),有返回值的就在内部try,catch,然后通过返回值标识这个方法是不是执行成功。比如返回值是String时,就约定返回""就是发生了异常,A方法调用了B方法,B方法内部可能会产生IOException,B方法是带有返回值的,A方法的内部也会有其他的操作产生IOException,这时候,让B方法抛出一个IOException,是不是便于在A方法中的catch中集中处理,什么样的情况适合自定义异常?

展开
收起
月下丶 2018-12-14 21:25:07 3132 0
3 条回答
写回答
取消 提交回答
  • 2019-07-17 23:21:34
    赞同 展开评论 打赏
  • 返回值一般代表正常的业务逻辑,说明系统没有遇到问题,一般不用来表达系统中的错误。而异常一般是系统出现问题,需要上层处理才会抛出。处理异常的代码不应该和主业务逻辑混合,异常层层上抛本身也是方便代码结构处理,不用一层一层的把错误结果向上传递

    2019-07-17 23:21:34
    赞同 展开评论 打赏
  • 刘子瑛,阿里系统框架专家。工作十余年,一直对新编程语言、新开发方法、数学与算法相关和并发等相关领域保持浓厚的兴趣。乐于通过技术分享促进新技术。

    返回值的坏处是可以不去处理,而Exception的好处是,除了RuntimeException外,不处理通不过编译。
    这样可以强制程序员去思考错误处理逻辑。
    不建议直接try catch像Exception这样的基类。

    2019-07-17 23:21:34
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载