JAVA异常

异常的背景

认识异常

异常就是程序在运行时出现错误通知调用者的一种机制(编译出错不属于此处的异常)

例如(除0异常)

System.out.println(10 / 0);
// 执行结果
Exception in thread "main" java.lang.ArithmeticException: / by zero

防御式编程

避免异常的两种方式
在这里插入图片描述
异常的基本语法

在这里插入图片描述
1.使用try catch处理异常

 public static void main(String[] args) {
//        System.out.println(10/0);
        int arr[]={1,2,3};

        try {
            //存放可能发生异常的代码块
            System.out.println(arr[4]);
        }
        catch (ArrayIndexOutOfBoundsException e){
            System.out.println("数组下标越界");
        }
        finally {
            System.out.println("hello");
        }
        //运行结果
        //数组下标越界
        //hello
    }

2.多个catch块
在这里插入图片描述
3.使用异常的共同父类Exception来捕获异常
在这里插入图片描述
4.finally代码块

finally无论是否产生异常,都会执行的代码块

   public static void main(String[] args) {
//        System.out.println(10/0);
        int arr[] = {1, 2, 3};

        try {
            arr = null;
            //存放可能发生异常的代码块
            System.out.println(arr[4]);
        }
            catch (Exception e){
                System.out.println("异常出现");

            }
       finally {
            System.out.println("hello");
        }
    }
    //运行结果
    //空指针异常
    //hello

在这里插入图片描述
5.异常返回值
在这里插入图片描述
6.throw和throws

throws:用在方法声明上,明确表示该方法有可能会产生异常,但是不处理,抛回给调用者

在这里插入图片描述

throw:用在方法内部,认为产生异常对象并抛出

在这里插入图片描述

异常体系结构

1.顶层类 Throwable 派生出两个重要的子类, ErrorException
2.其中 Error 指的是 Java 运行时内部错误和资源耗尽错误. 应用程序不抛出此类异常. 这种内部错误一旦出现,
除了告知用户并使程序终止之外, 再无能无力. 这种情况很少出现.
3.Exception 是我们程序猿所使用的异常类的父类.
4.其中 Exception 有一个子类称为RuntimeException , 这里面又派生出很多我们常见的异常类
NullPointerException , IndexOutOfBoundsException 等.

异常体系分类

在这里插入图片描述

自定义异常

程序开发中,一定有些错误是和具体业务相关的,这种时候JDK不可能提供相应的异常类,此时我们就需要继承已有的异常类,产生自定义异常。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值