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