异常的认识-(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)-创新互联
网站链接:https://www.cdcxhl.com/article48/dpdpep.html

成都网站建设公司_创新互联,为您提供用户体验关键词优化服务器托管手机网站建设微信小程序标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设