4.1异常处理

4.1.1 try-catch-finally

try-catch-finally语句在我们日常使用时出现频率也是异常高的。

官方也对try-catch-finally语句做出的详细的解释:

抛出异常时,公共语言运行库(CLR)会查找catch处理此异常的语句。如果当前正在执行的方法不包含这样的catch块,则CLR会查看调用当前方法的方法,依此类推调用堆栈。如果未catch找到任何块,则CLR向用户显示未处理的异常消息并停止执行该程序。

下面是try-catch-finally语法的模板

try{
//代码执行区域
}catch(Exception e){
//异常处理区域
}finally{
//无论如何都会执行的代码区域
}

对于try-catch-finally的实现:

public static boolean catchFinallyTest1() {
        try {
            int i = 10 / 0; // 抛出 Exception,后续处理被拒绝
            System.out.println("i vaule is : " + i);
            return true;   // Exception 已经抛出,没有获得被执行的机会
        } catch (Exception e) {
            System.out.println(" -- Exception --");
            return catchMethod();  // Exception 抛出,获得了调用方法的机会,但方法值在finally 执行完后才返回
        }finally{
            finallyMethod();  // Exception 抛出,finally 代码块将在 catch 执行 return 之前被执行
        }
    }

当然我们也可以之进行try-catch之后并不进行finally,但是非常不建议这样!finally常用来执行释放资源语句。

当我们try里面的方法报错时就会停止运行try里面的代码段,同时传入一个异常参数,方便人们对异常的处理。如果try代码段没有任何错误则会进行finally代码段里面的程序

4.1.2 throw和throws

throw:用于手动抛出一个异常(try中的异常是Java自动抛出的)。如果throw位于try语句中,则在try对应的catch中捕获并处理。否则就需要抛给调用者进行try-catch。此时,throw所在的方法必须是:[修饰符1,修饰符2,···] 返回值 方法名(形参列表) throws Exception {}表明当前方法可能抛出异常。表示的是此方法之中不进行异常的处理,而交给被调用处处理。
throws:主要是在方法定义上使用的,表示的是此方法之中不进行异常的处理,而交给被调用处处理。
重点:throw不能单独使用,只能配合throws或try{}catch{}使用。
class TestDemo {
    public static void main (String args[]) throws Exception{
        try {				// 直接抛出了一个自定义的异常类对象
            throw new Exception("自己定义的异常!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
            throw new Exception("自己定义的异常!");//直接抛出,没有try-catch则必须在方法上加上:throws Exception
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值