异常的处理

常用异常处理:

  • 异常处理的五个关键字:try、catch、finally、throw、throws
  • try即尝试,是监控区域,尝试能不能正常的走完整个作用域,如果不能则抛出一个异常。所以在try块里经常放上可能会抛出异常的程序段。
  • catch就是处理try里抛出来的异常,其中catch的参数列表接收的是一个异常的引用,是throw抛出来的异常的引用。其中try和catch可以嵌套引用。 用法:catch(想要捕获的异常类型){...}
  • finally用来处理善后工作(即在IO流或者跟资源相关的东西需要关闭,关闭的操作放在finally里面),一般接在try...catch后面。无论有没有出现异常finally都会执行。但是在出现没有进入try之前就报错的情况下,finally不会执行。
  • throw就是主动抛出一个异常,并获取这个异常的引用,这个异常会被抛到外部的环境,由外部环境进行处理。一般在方法中。
  • throws就是向上抛出异常,可以无限向上抛出,直到抛给main方法,main方法就抛给JVM虚拟机去解决。在方法中处理不了这个异常,在方法上抛出异常。
  • 捕获异常的意义在于,如果异常不捕获,运行就会停止;异常被捕获后,将不会停止程序,继续运行。

例子:

 (1)try...catch + finally

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        try {//try监控区域
            System.out.println(a / b);
        }catch (ArithmeticException e) {//catch捕获异常
            System.out.println("程序出现异常,变量b不能为0");
        }finally {//处理善后工作
            System.out.println("final");
        }

(2) catch的用法:

   public static void main(String[] args) {

        int a = 1;
        int b = 0;
     
//假设要捕获多个异常:从小到大

        try {//监控区域

            if (b==0){//  throw   throws
                throw new ArithmeticException();//主动抛出异常
            }

            System.out.println(a / b);

        }catch (Error e){//catch(想要捕获的异常类型) 捕获异常
            System.out.println("Error");
        }catch (Exception e){//catch(想要捕获的异常类型) 捕获异常
            System.out.println("Exception");
        }catch (Throwable e){//catch(想要捕获的异常类型) 捕获异常
            System.out.println("Throwable");
        }finally {
            System.out.println("finally");
        }
    }
}

输出结果:

 (3)若捕获多个异常,应从大到小(例:先 catch(Error)再 catch(Throwable))

(4)快捷键:选中代码按 Ctrl + Alt + T 

(5) throw与throws的用法 

 

注意:

throws

public void test(int a, int b) throws ArithmeticException {}

throw

if (b == 0) {//throw throws
            throw new ArithmeticException();//主动抛出异常,一般在方法中使用
        }

(6)结束代码的运行

System.exit(0);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值