Java异常的捕获和抛出

一. Java的异常机制

1.什么是异常

软件程序在运行过程中,存在许多意料之外或是特殊情况,这种时候程序可能会出现一些问题,我们叫做异常,英文是Exception。如果我们不及时处理,这些异常就会影响正常的程序执行。

异常处理的五个关键字

trycatchfinallythrowthrows

2.java异常的分类

  • 检查性异常:简单来说就是这些异常在编译时就不能通过
  • 运行是异常:相反就是能在编译是通过,而在运行时出现的异常
  • 错误:也就是error,错误不是异常

3.异常体系结构

Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception.
在这里插入图片描述

4.Error和Exception的区别

Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。

二. Java的捕获和抛出异常

来看代码

public class Test {
    public static void main(String[] args) {
        //捕获异常
        try {
            //可能产生异常的代码
            new Test().method(1, 0);//计算1/0
        } catch (ArithmeticException e) {//try抛出的是什么异常,catch里面就定义什么异常变量,用来接受这个异常
            System.out.println("捕获到异常");//捕获异常后做的事情
        } finally {//finally里面就是不管有没有catch异常都会执行
            System.out.println("finally");
        }
        System.out.println("===================");
    }

    //method方法用于计算a/b并打印出来
    public void method(int a, int b) {
        System.out.println(a / b);
    }
}

计算a/b,但是因为b不能为0,所以就程序运行过程中就可能存在异常,使用try{}catch{}来捕获异常,好处是如果你不捕获异常的话,程序就会被终止,下面的等号不会被打印,但加了捕获异常,所以程序能继续执行,这就是它的好处。

捕获异常的快捷键: 先选中代码块再Ctrl + Alt + T


在Exception分支中有一个重要的子类RuntimeException(运行时异常)
ArraylndexOutOfBoundsException(数组下标越界)
NullPointerException(空指针异常)
ArithmeticException(算术异常)
MissingResourceException(丢失资源)
ClassNotFoundException(找不到类)等异常,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。

因为这些异常你不主动抛出,程序在遇到时它也会自动抛出

2.多个异常的捕获

public class Test02 {
    public static void main(String[] args) {
        //捕获异常
        try {
            //可能产生异常的代码
            new Test02().method(1, 0);//计算1/0
        } catch (ArithmeticException e) {//try抛出的是什么异常,catch里面就定义什么异常变量,用来接受这个异常
            System.out.println("ArithmeticException");//捕获异常后做的事情
        } catch (Exception r) {
            System.out.println("Exception");
        } finally {//finally里面就是不管有没有catch异常都会执行
            System.out.println("finally");
        }
        System.out.println("===================");
    }

    //method方法用于计算a/b并打印出来
    public void method ( int a, int b){
        System.out.println(a / b);
    }
}

在需要捕获多个异常时,小的要放在前面,大的放后面
因为ArithmeticException 是属于Exception ,所以小,假如反过来它就会报错

3.Throwable类中的3个处理异常的方法

1. string getMessage()返回此throwable的简短描述。


2. String tostring()返回此 throwable的详细消息字符串。


3. void printstackTrace()JVM打印异常对象,默认此方法,打印的异常信息是最全面的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值