本帖最后由 怀念黑海岸 于 2014-8-3 15:51 编辑
有一天,你发现你的屋子又脏又乱,而你是一个勤快的人,你该怎么办呢,恩没错,自己动手打扫,这就是try{}catch{},你不想打扫就叫个钟点工来帮你打扫就是使用throws。
一般建议,哪儿出现的问题就在哪儿吧他解决了。哪儿跌倒了哪儿爬起来不是主要原因,而是因为对产生异常的地方进行处理能有效的分离程序正常流程代码和问题处理代码,这对于运行程序来说,也是健壮性的提升嘛,除非产生了你这儿实在无法处理的异常你才往外抛。
至于什么时候使用哪种办法处理异常也是有一些原则的,比如如果你要重写一个父类或者接口中的方法,但是这个方法在父类和接口中并未声明有异常抛出,那你在重写这个方法是却产生了异常,那你该怎么办呢?
最常见的就是多线程中你要重写Thread或者Runnable中的run方法,你在run方法中如果使用sleep方法时就会产生中断异常,你是该抛出呢还是不抛出呢?
秉承着:谁污染谁治理,谁开发谁保护的原则,这儿产生的异常你要自己就吧它给处理掉,这儿就得用try语句块,而不是单纯的跑出去。
简而概之:父类或者接口中的方法没有抛出异常的话那么子类和实现类中的重写方法也不能抛出异常。
|