只要编译时候没有问题,运行时出错了,就算抛出异常了,错误还在那里啊,抛出异常有什么好处呢?
[quote]捕获和抛出有什么区别?[/quote]
捕获,异常的控制权在你的手上。
抛出,你把异常又扔出去了。
如果抛出了异常,而没被后边的逻辑捕获进行处理,程序就会出现“异常”错误
用用就知道了。
异常处理让你能控制你的应用按照你的逻辑走。
还能定位错误出在什么地方。
看看过去旧的C式的code, 很多 goto errorno:
抛异常的好处:
我的感受:
1.当出现了问题时,起码知道哪里出问题了。
2.看看它出问题的频率,试图判断是否有其他问题。
我个人认为如果有异常的话,捕获比较好,不要把异常抛出!
异常提供了原始的C的错误处理机制所不仅有的优点,我们在Java中父类异常类型可以捕获子类对象,更加灵活,C返回错误码这种方式是办不到的;finally语句可以保证终止一些操作,比如关闭文件等资源;异常也可以实现一些类似于"goto"语句的功能。异常可以让让你把精力放在程序逻辑上,而不是错误处理上
catch是用来捕获异常的,try里的是可能抛出异常的语句,一个方法如果完全有能力自己处理发生的错误就可以自己处理,如果处理不了这个错误,就可以用throw重新抛出,此时方法的签名中要有throws子句告诉调用者这个方法是可能抛出错误的