前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >返璞归真·读书·【Effictive java】之异常

返璞归真·读书·【Effictive java】之异常

作者头像
小尘哥
发布2020-04-27 10:20:25
3030
发布2020-04-27 10:20:25
举报
文章被收录于专栏:小尘哥的专栏小尘哥的专栏

功夫之道,无招胜有招。开发之道,基础要牢。然而做开发的时间越久,越是发现一些基础知识的巧妙与必然,很多三年五年的coder有时候都不见得能搞明白一些基础的东西,因为平时开发压根不会用到,只需要会使用框架,可以CRUD就好了。但是拼到最后,问题一定可以在基础知识上找到答案,不能不得不赞叹语言设计者的智慧。

本文主要抛砖引玉,throw 一些 exception,希望大家可以catch后做出自己的业务处理

一、只针对该使用异常的情况下才使用异常

示例(参考Effictive Java 第九章)

代码语言:javascript
复制
try{   int i = 0;    while(true){    range[i++].climb();   }} catch(ArrayIndexOutOfBoundsException e){}

正确做法

代码语言:javascript
复制
for (Mountain m:range){  m.climb();}

只在有需要的地方抛出异常,不要通过异常来决定正确的业务逻辑。

二、不要忽略异常

通常我们为了方便,会将整个方法体放入try catch。真的是撸代码时候爽的飞起,万一真的进入catch会有想死的感觉啊。

  1. 整个方法方法捕获异常会非常降低效率,可以写一个循环尝试一下
  2. 整个方法体万一抛出一个NullPointException,再加上一般这么写的代码都会太“优美”,无法排查跟踪错误
  3. 更有甚者,请看下面代码
代码语言:javascript
复制
try {  // your code begin   ··· // your code end}catch (Exception e){// Do nothing}

catch中什么也没做,没有任何处理,并且所有的Exception都被捕获了,然后····没有然后了。异常捕获之后一定要做自己的业务处理或者声明自定义异常。

代码质量,取决于后来维护人每分钟骂娘次数,共勉!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陌与尘埃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、只针对该使用异常的情况下才使用异常
  • 二、不要忽略异常
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档