日期:2014-05-20  浏览次数:20869 次

java必须捕捉的异常都有哪些
java新手提问:java中异常的抛出。
是不是只要api文档里写了throw 某某Exception的就要捕捉异常,RuntimeException的除外?
谢谢

------解决方案--------------------
Java异常机制,你可以仔细研读《Think in Java》。Java的异常可以分为两类,RuntimeException代表运行时由Java虚拟机生成的异常,如算术运算例外ArithmeticException(由除0错等导致)、数组越界异常ArrayIndexOutOfBoundsException等;其它则为非运行时异常,如输入输出异常IOException等。Java编译器要求Java程序必须捕获或声明所有的非运行时异常,但对运行时异常可以不做处理。此外,Error也是由Java虚拟机生成并抛出。
------解决方案--------------------
异常是java中的一大块。。。lz可以深入了解下。。。怎么说呢,凡是异常最好都处理下,但是抛出问题根据自己的习惯吧,可以在底层抛出,然后在外层捕捉和处理,也可以直接在外层处理。。。
------解决方案--------------------
是否要抛出异常并不难,因为Java的编译器已经限定你哪些异常你必须捕获,否则编译无法通过;比较纠结的是,当你捕获异常以后做些什么,很多程序在捕获异常以后什么都不做,这通常不是好的习惯。

对于异常处理也会有人认为任何异常都应该捕获并给与处理,这实际上既不现实,也对程序没有多大帮助,反而给程序员带来很大负担;

就像你自己所阐述的那样,一般RuntimeException我们是不进行处理的,因为即使你捕获了,也什么都做不了,你不可能恢复程序,让程序继续运行下去。
------解决方案--------------------
catch(Exception e) 搞定一切。貌似。。额。。