黑马程序员技术交流社区

标题: IO中异常处理问题 [打印本页]

作者: winsking    时间: 2013-9-28 16:28
标题: IO中异常处理问题
本帖最后由 winsking 于 2013-9-29 18:20 编辑

最近写代码时,在IO异常处理这里不是很清楚。因为看毕老师的视频,老毕都是在方法上抛出的。
用哪些类可以在方法上抛出?  什么时候要try 呢
键盘输入的代码需不需要try?
这一块很是迷惑
作者: 罗凯健    时间: 2013-9-28 17:22
毕老师的视频异常处理基本都是抛(在方法上throws),目的是为了代码更加紧凑,方便教学。很多时候老师在主函数上抛,是把异常传递给虚拟机去处理了。

而在实际开发当中,一般在定义功能的时候才抛,让调用者去进行捕捉处理。在实际调用方法的时候,都是用try,catch来进行捕捉的
作者: doitforyou    时间: 2013-9-28 18:17
异常就如同我们人感冒一样,可以看医生(try)来进行捕获(catch),也可以自己坚持一下就过去了(throws),将异常交由身体免疫机制(JVM)来解决。
所以到底是try还是throws主要由我们程序员来决定,看看怎么样选择对程序有好处。
毕老师平时的授课之所以直接throws,大部分是为了节省时间,方便于教学和代码阅读。

我们常用的Exception体系中包括RuntimeException和非RuntimeException两大块。
其中RuntimeException包括错误的类型转换、数组越界访问和试图访问空指针等等。
如果程序中可能出现此类异常的话,这些都是我们程序本身的错误,可以进行抛出,
然后我们作进一步修改。

其他非RuntimeException(IOException等等):这类异常一般是外部错误,
例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
如我们看视频时经常会出现此类异常,这类异常一般是要捕获的。




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