try…catch…finally…
try…catch…用于捕获异常,处理代码中可能出现的异常事件。
使用形式:
try{
代码块
}catch(异常类型 异常对象){
异常处理
}catch(异常类型 异常对象){
异常处理
}finally{
一定回执行的代码;//一般用作流的关闭
}
一个try可以捕获多个异常,也就是后面可以跟着多个catch,以此处理不同类型的异常
throw
throw,抛出,这里是抛出异常。用在方法体中,抛出自定义异常时使用。自定义异常可以继承Exception和RuntimeException。继承exception,在使用时需要在方法中throws抛出自定义异常;使用RuntimeException,不需要再方法中throws抛出自定义异常。
自定义异常:AjaxRequestException
public class AjaxRequestException extends Exception {
public AjaxRequestException() {
super();
}
public AjaxRequestException(String message) {
super(message);
}
}
抛出自定义异常:自定义异常继承Exception,方法也需要抛出这个异常
public void xx() throws AjaxRequestException{
if(...){
throw new AjaxRequestException();
}
}
throws
throws,抛出异常,无论是自定义异常,还是受检异常,都可以抛出。使用在方法上面。
当一个类的对象调用这个类中抛出异常的方法时,那么这条语句所在的方法也需要抛出这个异常
public void xx() throws Exception{
代码块(包括可能会出现异常的语句)
}
什么时候使用它们
try…catch…与throws是两种处理异常的方式
- 当方法中遇到的异常我们有能力处理的时候,我们就使用try…catch…捕获并处理异常
- 当方法中遇到的异常我们没有能力处理或者不想处理时,就使用throws,将它抛给调用者,通过异常来传递信息
- throw在使用自定义异常时使用