通过异常处理错误

  • 概念

    用强制规定的形式来消除错误处理过程中随心所欲的因素。

  • 基本异常

    异常情形是指阻止当前方法或作用域执行的问题。
    在抛出异常后,首先,同java中其他对象的创建一样,将使用new在堆上创建异常对象。然后,当前的执行路径被终止,并且从当前环境中弹出对异常对象的引用,此时,异常处理机制接管程序,并且,开始寻找一个恰当的地方来执行程序。
    if(t==null)
    throw new NullPointerException();
    //t可能未被初始化,所以在使用这个对象前先调用其方法,会先对引用进行检查。可以创建一个代表错误信息的对象,并且把它从当前环境中“抛出”。把错误信息传播到了“更大”的环境中处理。
    异常如果发生问题,他们将不允许程序沿着其正确的路径走下去。

  • 捕获异常

    异常处理程序:
    try{
    //code that might generate exception
    }catch(Type id){
    //handle exception of type
    }
    当异常被抛出时,异常处理机制将负责搜寻参数和异常类型相匹配的第一个处理程序。然后进入catch子句才能得到执行,此时认为异常得到处理。
    例子:
    public class ExceptionTest {

    public static void execute() throws Exception {
    System.out.println(“execute…”);
    throw new Exception();
    }

    public static void main(String[] args) {
    try {
    execute();
    } catch (Exception e1) {
    e1.printStackTrace();
    }
    }
    }

  • 自定义异常

public class MyException extends Exception{
public MyException(){
super();
}
public MyException(String mag){
super(mag);
}
}

//在类中使用异常
public class ExceptionTest {

public static void execute(String a) throws MyException {
    System.out.println("execute...");
    if("true".equals(a)){
        throw new MyException("参数不能为 true");
    }
}

}

//捕获自定义异常
public static void main(String[] args) throws MyException {

execute("true");

}

使用finally进行清理
对于一些代码,希望无论try块中的异常是否被抛出,他们都能得到执行。这通常适用于内存回收之外的情况。
在try中存在return语句,那么首先会执行finally中的代码,再返回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值