黑马程序员技术交流社区

标题: 一个自己一直不是很明白,但又是很重要的问题. [打印本页]

作者: 系磊    时间: 2012-8-4 11:31
标题: 一个自己一直不是很明白,但又是很重要的问题.
  今天看书,看到了处理异常这一块,有多个catch块时,要从小到大的排.catch块不像重载的方法会被挑出最符合的项目,使用catch块时,java虚拟机只会重头开始往下找到第一个符合范围的异常处理块,如果第一catch就是catch(Excepton e),则编译器会知道其余的都没有用处.
  这里就涉及到了写代码的先后顺序,顺序错了代码可能无法通过编译或者得不到自己预期的结果,我就是想问下,在写哪些代码块的时候要注意先后顺序,什么时候要注意先后顺序?  
作者: 侯宪博    时间: 2012-8-4 11:41
当你的抓取的异常有父类异常存在时,你就需要把父类异常往后放
因为如果在前面放上了父类的话
他会屏蔽掉在其后边的所有的它的子类异常
因为这是类的多态所导致的
记住有父类往后放
先获取比较细的异常
再获取范围更广的异常
否则子类异常会被包含其中处理掉。
会使问题隐藏而导致未知隐患。。。
作者: 系磊    时间: 2012-8-4 16:40
侯宪博 发表于 2012-8-4 11:41
当你的抓取的异常有父类异常存在时,你就需要把父类异常往后放
因为如果在前面放上了父类的话
他会屏蔽掉在 ...

哥们我问的不是这个意思我,不是问为什么catch要排序,我的意思是有哪些代码块和catch一样在书写的时候需要排顺序
作者: 张_涛    时间: 2012-8-4 18:01
系磊 发表于 2012-8-4 16:40
哥们我问的不是这个意思我,不是问为什么catch要排序,我的意思是有哪些代码块和catch一样在书写的时候需 ...

if..else
判断范围的时候应该注意
作者: 林康春    时间: 2012-8-4 18:55
你这个问题是最基本的问题!
无论做什么事,都要有顺序。
软件的代码更是有严谨的逻辑,
因此,写代码都要注意顺序,都
要清楚明白前后的顺序关系。毕
老师视频中经常画图,就是让我们
明白程序的执行顺序啊。
再具体点,你可以看看语句的结构
:循环语句,条件语句,顺序语句,其它语句




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2