异常就如同我们人感冒一样,可以看医生(try)来进行捕获(catch),也可以自己坚持一下就过去了(throws),将异常交由身体免疫机制(JVM)来解决。
所以到底是try还是throws主要由我们程序员来决定,看看怎么样选择对程序有好处。
毕老师平时的授课之所以直接throws,大部分是为了节省时间,方便于教学和代码阅读。
我们常用的Exception体系中包括RuntimeException和非RuntimeException两大块。
其中RuntimeException包括错误的类型转换、数组越界访问和试图访问空指针等等。
如果程序中可能出现此类异常的话,这些都是我们程序本身的错误,可以进行抛出,
然后我们作进一步修改。
其他非RuntimeException(IOException等等):这类异常一般是外部错误,
例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
如我们看视频时经常会出现此类异常,这类异常一般是要捕获的。 |