Java中异常的声明和抛出异常有什么区别?比如方法p1可能会有异常就需要有个异常的声明void p

Java中异常的声明和抛出异常有什么区别?比如方法p1可能会有异常就需要有个异常的声明void p1() throws Exception{}
这个throws Exception叫异常的声明
又如有个方法p2调用p1 void p2() throws Exception { p1(); }这里的throws Exception叫抛出异常。
我想知道这两个throws Exception有什么区别呢?

这2个都是异常的声明,声明异常不一定要抛出,可以自己捕获异常并处理,也可以抛出给调用它的函数,如果都没有捕获就是没有使用try{}catch(),会一层层往外抛出。
还有RuntimeException及其子类不用声明异常,就是不用在函数上加throws Exception。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-22
因为p1的异常没有处理,那么谁调用就抛给谁,如果调用的p2还没处理这个异常,那么会继续抛给下一个调用p2的方法,其实是同一个异常
相似回答