java异常抛出异常后捕捉和不抛出直接捕捉有什么区别

如题所述

1.
其实抛出异常后应该就不能叫捕捉了
— 因为捕捉(即catch代码块)是在try代码块的后面执行的,然后你再throw一个Exception又是在catch代码块捕捉到异常后执行的,也是说顺序是先try-->catch->throw;
2.
抛出异常异常后— 意味着catch代码块后面就不再执行了;
不抛出直接捕捉— 意味着catch代码块后面还会继续执行。

ps:
不知道回答的对不对,不过希望对你有帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-17
比如系统自定的异常,就像数组越界这种,系统直接捕捉了然后报错给你。
如果是自定义的异常,例如用户登录的时候密码错误,这里操作上并没有错,但是要反馈错误信息给用户,你就可以抛一个异常出来,然后提示用户密码错误。
最简单的说抛出异常后捕捉,你可以在任何想要的地方报异常,然后返回相应的提示。就是说自定义异常多数都是程序员选择再什么地方抛出的
第2个回答  2013-04-17
一个在方法体内一个不在这是写法上的不同,效率上捕捉异常是在有异常的时候才执行,直接抛是在执行前就要声明,考虑程序执行效率建议采取捕捉异常的方式。你参考一下
第3个回答  2013-04-17
程序的逻辑功能和性能上没有本质区别
但是,如果抛出的话,可以将不同的异常在异常的那个类里单独定义,没必要用很多if-else语句来判断是哪种异常。这种机制也就体现出了java面向对象程序设计的思想,对异常进行封装。
第4个回答  2013-04-19
有时候,你可能希望自己处理这个异常,因为你能确定异常的成因(自己捕捉掉),但还有些时候,你的代码是提供给别人用的,别人更情愿用自己的方式处理这个异常,所以你就被抛出了。。。。。
相似回答