一般是一路向上抛(throws),最外层谁调用谁处理(try-catch)
throws是方法名抛出一个异常,以后哪个对象调用就要处理这个异常。一般对象调用这个方法的时候都放到一个try catch里
throw 是抛出一个异常,throws是方法抛出一个异常
throw语句可以引发明确的异常,程序到了throw语句这后就立即停止,不会执行后面的程序,
throws在发生异常的地段流程不再往下走了
try-catch会让流程走下去
throw和try-catch结合使用
try{
...
throw 抛出异常
}catch( Exception e)
{
}
在try ... Catch代码中,throw异常后,throw后面的代码不再执行,直接执行Catch处的代码,并且Finally处的代码也会执行。
异常处理有一个简单的原则,什么时候需要封装自己的检查型异常?就是你很清楚自己抛出这个异常的用途时,比如用户输入用户名和密码要登录,但用户名和密码不匹配,你就要定义一个检查型异常,客户端通过捕获该异常,然后把相应的错误信息反馈给客户.而其它的自己未预期的错误或者异常常比如SQLException,只需封装到EJBException中,ejb container会把它的信息追加到RemoteException里,这样客户端捕获RemoteException后把它写到系统日志里,就很容易进行调试。