异常的认识-(java)-创新互联

文章目录
  • 前言
  • 1. 什么时异常?
  • 2. 异常的分类
    • 2.1 运行时异常/非受查异常
    • 2.2 编译时异常/受查异常
  • 3. 处理异常
    • 3.1 抛出异常
    • 3.2 声明异常
    • 3.3 try catch处理异常
  • 总结

创新互联公司是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:成都响应式网站建设公司品牌网站设计全网营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都网站建设、成都做网站、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。


前言

本篇通过认识异常了解一般程序中出现的异常,认识异常的分类,正确的处理异常的方式,例如:抛出异常,捕获异常等。如有错误,请在评论区指正,让我们一起交流,共同进步!


本文开始

1. 什么时异常?

异常:程序执行前没有预料到的情况,程序报出的错误;

之前所见的异常:
空指针异常,算术异常等

2. 异常的分类

异常分为一般分为 运行时异常 和 编译时异常
错误:递归死循环等问题为错误
异常大致分类图:

在这里插入图片描述

2.1 运行时异常/非受查异常

运行时异常(RunTimeException):错误不会出现画线部分,程序执行时发生的异常;
例如: 空指针异常,数组越界异常等

public static void main(String[] args) {
        int[] arr = null;
        System.out.println(arr.length); // 空指针异常
        System.out.println(arr[5]); // 数组越界异常
        System.out.println(2/0); // 算数异常
    }

代码异常报错示范:

在这里插入图片描述

2.2 编译时异常/受查异常

编译时异常(Checked Exception):错误部分会出现画线标注,提醒异常,编译时发生的异常;
【注】有编译时异常,必须处理,否则无法编译;
例如:克隆
异常代码示范:

class Student implements Cloneable{
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
public class Main {
    public static void main(String[] args) {
        Student student = new Student();
        Student student1 = (Student)student.clone();
    }
}

编译时异常:

>![在这里插入图片描述](https://img-blog.csdnimg.cn/6efd724499754749a4e913490d74006f.png)

3. 处理异常

异常关键字:throw(抛出时使用),throws(声明异常),try和catch,finally(处理异常时使用)

3.1 抛出异常

抛出异常使用关键字:throw
当满足什么条件下,直接抛出异常;抛出异常指我们知道代码可能发生异常,及时抛出,提醒使用者更改;

在这里插入图片描述

3.2 声明异常

异常可以理解为具有传递性,如果不处理异常,仍会报错;
使用关键字:throws声明
声明异常后,是知道有异常,但是如果不处理,还是不能编译;
声明异常只是知道该部分可能存在异常,如果不处理会传递给后面的代码,都只声明不处理,最后会交给JVM处理,产生异常错误;

在这里插入图片描述

3.3 try catch处理异常

代码格式:

public static void main(String[] args) {
        try {
            //可能产生异常的代码
            System.out.println(4/0);
        } catch (RuntimeException e) { //括号中存放什么异常
            //处理异常
            e.printStackTrace();  // 打印产生错误的信息 : 红色字体部分如下图
            System.out.println("异常的信息");
        }
        // 写正常的代码
        System.out.println("正常的代码");
    }

【注】异常处理完成后,正常的代码可以执行,不处理,报异常后的代码都不会执行;
1.catch: 可写多个catch,catch的顺序不影响异常的捕获;
2.多个异常情况下,先执行那个程序(代码),先捕获那个异常;(与catch无关)

在这里插入图片描述

finally: try中是否抛出异常,finally中的代码都会执行;
一般用于资源释放;

try {
            //可能产生异常的代码
        } catch (RuntimeException e) { //括号中存放什么异常
            //处理异常
            e.printStackTrace();
        } finally {
            System.out.println("finall一般用于资源释放");
        }
        System.out.println("正常的代码");

总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前名称:异常的认识-(java)-创新互联
本文链接:http://pwwzsj.com/article/dpdpep.html