【java】异常与错误

news2024/12/23 23:30:35

Throwable包括Error和Expected。

Error

Error错误是程序无法处理的,由JVM产生并抛出的。

举例:StackOverflowError \ ThreadDeath

Expected

Expected异常包括两类,即受检异常(非运行时异常)和非受检异常(运行时异常),异常往往是由程序的逻辑错误引起的。异常可以由程序自行处理。

受检异常:在编辑器中可以检测到,无需运行。

举例:ClassNotFoundException

非受检异常:运行后才可以检测到的异常。

举例:ArrayIndexOutOfBoundsException \ 空指针

程序处理异常的方式
① try - catch - finally

原本的程序设计是:一旦出现异常,那么将不再向下执行程序。

但是如果提前将可能出现异常的程序用try - catch包裹,那么程序即使出现问题也会继续向下执行。finally是不管上边正确还是错误,都会执行的程序。

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[5];
        try {
            System.out.println("----------这是一条语句----------");
            arr[5] =  1;
            System.out.println("这条语句不会执行");
        } catch (Exception e){
            System.out.println("出现异常了");
        } finally {
            System.out.println("不管是否出现异常都会执行");
        }
    }
}
运行结果

② 抛出

抛出是让程序的调用程序处理异常,这并不能解决问题,只是指出了问题所在。

public class Main {
    public static void main(String[] args) {
        try {
            run();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println("try-catch虽然报错,但仍然可以运行");
    }
    public static void run() throws ClassNotFoundException {
        fly();
    }
    public static void fly() throws ClassNotFoundException {
        Class.forName("MainX");
    }
}
报错但存在输出
public class Main {
    public static void main(String[] args) throws ClassNotFoundException {
        run();
        System.out.println("仅报错,并不能输出");
    }
    public static void run() throws ClassNotFoundException {
        fly();
    }
    public static void fly() throws ClassNotFoundException {
        Class.forName("MainX");
    }
}

报错且不存在输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1676713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【微记录】Makefile中wildcard(通配)的一种用法--如何避免某个头文件路径不存在造成CLFAGS添加后编译报错?

文章目录 背景方法:wildcard补充信息wildcard解释Make中wildcard用法 背景 工程中,如果某个代码需要再不同平台有不同的依赖头文件,于是会出现不同平台依赖头文件路径不一样,但是为了适配多个平台如何做到避免某个头文件路径不存…

笔记本黑屏,重新开机主板没有正常运作的解决办法

拆开笔记本后壳,打开看到主板,将主板上的这颗纽扣电池拆下来,如果是带连接线的(如下图),可以将接口处线头拔出,等1分钟再把线接上。 ------------- 以下是科普 首先,电脑主板上的这…

【学习笔记】C++每日一记[20240513]

简述静态全局变量的概念 在全局变量前加上static关键字,就定义了一个静态全局变量。通常情况下,静态全局变量的声明和定义放在源文件中,并且不能使用extern关键字将静态全局变量导出,因此静态全局变量的**作用于仅限于定义静态全…

[初学者必看]JavaScript 简单实际案例练习,锻炼代码逻辑思维

文章目录 创意小项目合集:从简易图片轮播到购物车1. 图片轮播器2. 动态列表3. 模态框(Modal)4. 简单的表单验证5. 简易待办事项列表(Todo List)6. 简易图片画廊7. 简易时钟8. 简易搜索框高亮9. 简易颜色选择器10. 简易…

华为认证大数据是什么?华为认证大数据有用吗?

华为大数据是用来搜集整理大数据,提供解决方案的数据中心。华为大数据解决方案是华为公司推出的一种综合性云解决方案,主要针对广告营销、电商、车联网等大数据应用场景的云计算大数据方案,帮助企业用户构建大数据平台,解决企业的…

Elasticsearch分词及其自定义

文章目录 分词发生的阶段写入数据阶段执行检索阶段 分词器的组成字符过滤文本切分为分词分词后再过滤 分词器的分类默认分词器其他典型分词器 特定业务场景的自定义分词案例实战问题拆解实现方案 分词发生的阶段 写入数据阶段 分词发生在数据写入阶段,也就是数据索…

10G UDP协议栈 IP层设计-(5)IP RX模块

一、模块功能 1、解析目的IP是否是本节点的源IP,如果是则进行如下的处理,如果不是则无需上上级传递 2、提取MAC层发送过来的IP报文,并提取其中的数据字段(上层协议字段),传递给上级 3、提取IP报文头中的…

港股大反攻结束了吗?

‘港股长线见顶了吗?今天开盘就是最高点,然后一路跳水,市场又是一片恐慌。到底是健康的技术性回调,还是市场已经见顶? 港股此轮“大反攻”中,科网股表现十分亮眼。今日港股盘后,阿里巴巴、腾讯…

联软安渡 UniNXG 安全数据交换系统 任意文件读取漏洞复现

0x01 产品简介 联软安渡UniNXG安全数据交换系统,是联软科技自研的业内融合网闸、网盘和DLP的一体机产品,它同时支持多网交换,查杀毒、审计审批、敏感内容识别等功能,是解决用户网络隔离、网间及网内数据传输、交换、共享/分享、存储的理想安全设备,具有开创性意义。 UniN…

【Android踩坑】 Constant expression required

gradle 8,报错 Constant expression required:意思是case语句后面要跟常量 解决1 单击switch语句,键盘按下altenter,将switch-case语句替换为if-else语句(或者手动修改) 解决2 在gradle.properties中添加 android.nonFinalRes…

Java(四)---方法的使用

文章目录 前言1.方法的概念和使用2.方法的定义3.实参和形参的关系4.方法重载4.1.改进4.2.注意事项 5.递归5.1 生活中的故事5.2 递归的概念 5.3.练习 前言 前面一章我们学习到了程序逻辑语句,在写代码的过程中,我们会遇到需要重复使用的代码块&#xff0…

使用 Python 进行图像验证码识别训练及调用

目录 1、验证码识别原理1.1 Tensorflow 介绍1.2 Tensorflow 运行原理1.3 卷积神经网络 CNN(Convolutional Neural Networks) 2、验证码识别实现步骤2.1 安装第三方模块2.1.1 安装 TensorFlow 模块2.2.2 安装 cuda2.2.3 下载 cudnn 2.2 读取验证码样本形成…

智慧公厕的核心技术详解:物联网、云计算、大数据、自动化控制

公共厕所是城市的重要组成部分,而智慧公厕的建设和管理正成为城市发展的重要方向。智慧公厕的核心技术即是物联网、云计算、大数据和自动化控制。下面将以智慧公厕源头实力厂家广州中期科技有限公司,大量精品案例项目现场实景实图实例,详细介…

【微命令】git config如何配置全局的用户和邮箱?(--global user.name、user.email;git config --help)

虽然经常用,也经常忘记,特此记录。 命令 git config --global user.name "myname" git config --global user.email test163.com另外一种方式 help git config --help |grep email | grep name直接help查看

Redis的集群模式——Java全栈知识(20)

1、主从模式 Redis 支持主从模式的集群搭建,这是 Redis 提供的最简单的集群模式搭建方案,目的是解决单点服务器宕机的问题。当单点服务器发生故障的时候保证 Redis 正常运行。 主从模式主要是将集群中的 Redis 节点分为主节点和从节点。然后读和写发生在…

C++初阶学习第六弹——string(1)——标准库中的string类

前言: 在前面,我们学习了C的类与对象,认识到了C与C语言的一些不同,今天,我们将进入C的 关键部分——STL,学习完这部分之后,我们就可以清楚的认识到C相比于C语言的快捷与便利 目录 一、为什么有s…

springboot房屋租赁系统

摘要 房屋租赁系统;为用户提供了一个房屋租赁系统平台,方便管理员查看及维护,并且可以通过需求进行设备信息内容的编辑及维护等;对于用户而言,可以随时进行查看房屋信息和合同信息,并且可以进行报修、评价…

面试集中营—rocketmq架构篇

一、基本定义 Apache RocketMQ 是一款低延迟、高并发、高可用、高可靠的分布式消息中间件。消息队列 RocketMQ 可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。 Topic:消息主题&…

基于yolov2深度学习网络的单人口罩佩戴检测和人脸定位算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ..............................................................I0 imresize…

详述进程的地址空间

进程的地址空间 合法的地址 (可读或可写) 代码 (main, %rip 会从此处取出待执行的指令),只读数据 (static int x),读写堆栈 (int y),读写运行时分配的内存 (???),读写动态链接库 (???) 非法的地址 NULL,导致 se…