P451 try-Catch异常处理

//基本使用演示代码

public static void main(String[] args) {

        int num1 = 10;

        int num2 = 0;

        try {

                int res = num1 / num2;

        }catch (Exception e) {

                System.out.println(e.getMessage());

        }

}

public class TryCatchDetail {

        public static void main(String[] args) {

        //1. 如果异常发生了,则异常发生后面的代码不会执行,直接进入到 catch 块

        //2. 如果异常没有发生,则顺序执行 try 的代码块,不会进入到 catch

        //3. 如果希望不管是否发生异常,都执行某段代码(比如关闭连接,释放资源等)则使用如下代码 

        try {

                String str = "小明";

                int a = Integer.parseInt(str);

                System.out.println("数字:" + a);

        }catch (NumberFormatException e) {

                System.out.println("异常信息=" + e.getMessage());

        } finally {

                System.out.println("finally 代码块被执行...");

        }

        System.out.println("程序继续..."); }

public class TryCatchDetail02 {

        public static void main(String[] args) { 

        //1.如果 try 代码块有可能有多个异常

        //2.可以使用多个 catch 分别捕获不同的异常,相应处理

        //3.要求子类异常写在前面,父类异常写在后面

        try {

                Person person = new Person();

                person = null;

                System.out.println(person.getName());//NullPointerException                

                int n1 = 10;

                int n2 = 0;

                int res = n1 / n2;//ArithmeticException

        } catch (NullPointerException e) {

                System.out.println("空指针异常=" + e.getMessage());

       } catch (ArithmeticException e) {

                System.out.println("算术异常=" + e.getMessage());

       } catch (Exception e) {

                System.out.println(e.getMessage());

       } finally { }

    }

}

class Person {

        private String name = "jack";

        public String getName() {

                return name;

}

public class TryCatchDetail03 {

        public static void main(String[] args) {

/*

可以进行 try-finally 配合使用, 这种用法相当于没有捕获异常, 因此程序会直接崩掉/退出。应用场景,就是执行一段代码,不管是否发生异常, 都必须执行某个业务逻辑

*/

        try{

                int n1 = 10;

                int n2 = 0;

                System.out.println(n1 / n2);

        }finally {

                System.out.println("执行了 finally..");

        }

        System.out.println("程序继续执行..");

}

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

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

相关文章

ubuntu20.04 终端 设置字体大小

##ubuntu20.04 Terminal 终端 设置字体大小 ##打开Terminal 终端,点击Preferences设置字体大小 ##点击unnamed选项卡,打钩Custom font 设置 字体大小

三前奏:获取/ 读取/ 评估数据【数据分析】

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 前面的博客 数据分析—技术栈和开发环境搭建 …

二叉树——堆详解

目录 前言: 一、堆的结构 二、向上调整和向下调整 2.1 向上调整 2.2 向下调整 2.3 向上调整和向下调整时间复杂度比较 三、堆的实现 3.1 堆的初始化 3.2 堆的销毁 3.3 堆的插入 3.4堆的删除 3.5 取堆顶元素 3.6 对堆判空 四、堆排序 五、TOP-K 问题 六、代码总…

你真正了解 Java 中的 Date 类吗?以及如何正确使用它

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

pygame raycasting纹理

插值原理 原理 color&#xff08;x&#xff09;(x-x1)/(x2-x1)(color2-color1)color1 x1<x<x2 假如说x伪3 那么color&#xff08;3-x1&#xff09;/(x2-x1)(color2-color1)color 可是图片纹理 这里不需要两种颜色&#xff0c;只需要获得碰撞点坐标后&#xff0c;如果…

安卓玩机搞机技巧综合资源----自己手机制作证件照的几种方法 免费制作证件照

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红…

ES基础概念

本文不介绍如何使用ES&#xff08;使用ES见&#xff1a;&#xff09; 1.ES生态圈 ES&#xff1a; Logstash&#xff1a;数据处理服务程序&#xff0c;解析转换加工数据&#xff1b; Kibana&#xff1a;数据展示、集群管理&#xff0c;数据可视化、ES管理与监控、报表等&#xf…

Nature期刊的等级和分类

Nature期刊不用过多介绍&#xff0c;学术界人员都对其有所了解&#xff0c;可以和Science&#xff0c;Cell比肩&#xff0c;Nature旗下创办了很多子刊&#xff0c;系列期刊有一百多种&#xff0c;当然其含金量各有不同&#xff0c;nature旗下的期刊等级你是否都了解了。 Nature…

设计模式——概述

1.设计模式定义 ​ 设计模式是软件设计中常见问题的典型解决方案,可用于解决代码中反复出现的设计问题。设计模式的出现可以让我们站在前人的肩膀上&#xff0c;通过一些成熟的设计方案来指导新项目的开发和设计&#xff0c;以便于我们开发出具有更好的灵活性和可扩展性&#…

JAVAEE之线程(10)_线程池、线程池的创建、实现线程池

一 线程池 1.1为什么要有线程池&#xff1f; 线程池顾名思义是由多个线程所组成&#xff0c;作用就是减少线程的建立与销毁&#xff0c;与数据库连接池相同概念&#xff0c;为了减少连接与释放&#xff0c;从而降低消耗提升效率。 1.2 线程池的优势 总体来说&#xff0c;线程…

【数据分析面试】53.推送消息的分布情况(SQL)

题目 我们有两个表&#xff0c;一个是 notification_deliveries 表&#xff0c;另一个是包含 created 和购买 conversion dates 的 users 表。如果用户没有购买&#xff0c;那么 conversion_date 列为 NULL。 编写一个查询&#xff0c;以获取用户转换前的推送通知总数的分布情…

Java反射角度简单理解spring IOC容器

概述 Java反射&#xff08;Reflection&#xff09;是Java编程语言的一个特性&#xff0c;它允许在运行时对类、接口、字段和方法进行动态查询和操作。反射提供了一种在运行时查看和修改程序行为的能力&#xff0c;这通常用于实现一些高级功能&#xff0c;如框架(Spring)、ORM&…

算法:树状数组

文章目录 面试题 10.10. 数字流的秩327. 区间和的个数315. 计算右侧小于当前元素的个数 树状数组可以理解一种数的存储格式。 面试题 10.10. 数字流的秩 假设你正在读取一串整数。每隔一段时间&#xff0c;你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。 请实现数据结构…

网络信息安全

目录 引言 网络信息安全的基本概念 定义 主要目标 网络信息安全的范围 主要威胁 恶意软件 黑客攻击 拒绝服务攻击 社交工程 内部威胁 常用技术和防护措施 加密技术 防火墙 入侵检测和防御系统 访问控制 多因素认证 安全审计和监控 安全培训和意识提升 未来发…

无人机支持下的自然灾害风险评估技术应用

张老师&#xff08;副教授&#xff09;&#xff0c;长期从事无人机遥感技术与应用&#xff0c;主持多项国家级科研项目&#xff0c;编写著作2部&#xff0c;第一作者发表科研论文20余篇。对无人机遥感的多平台、多传感应用现状以及涉及的核心技术具有很深的理解&#xff0c;精通…

失业潮中如何突围?优秀PPT案例助你职场逆袭

在这个变幻莫测的时代&#xff0c;失业潮像一场突如其来的暴风雨&#xff0c;许多人在职场的大海中迷失方向。但别担心&#xff0c;即使风浪再大&#xff0c;总有勇敢的航海者能够乘风破浪&#xff0c;找到属于自己的那片新大陆。 今天&#xff0c;我们就来聊聊&#xff0c;在…

MyBatis 学习笔记(一)

MyBatis 封装 JDBC :连接、访问、操作数据库中的数据 MyBatis 是一个持久层框架。 MyBatis 提供的持久层框架包括 SQLMaps 和 Data Access Objects&#xff08;DAO&#xff09; SQLMaps&#xff1a;数据库中的数据和 Java数据的一个映射关系 封装 JDBC 的过程Data Access Ob…

C++入门:从C语言到C++的过渡(3)

目录 1.内联函数 1.1内联函数的定义 1.2特性 2.auto关键字 2.1auto的简介 2.2注意事项 3.范围for 4.nullptr空指针 1.内联函数 在C语言中&#xff0c;无论使用宏常量还是宏函数都容易出错&#xff0c;而且无法调试。而C为了弥补这一缺陷&#xff0c;引入了内联函数的概…

为了“降本增效”,我用AI 5天将SpringBoot迁移到了Nodejs

背景 大环境不好&#xff0c;各行各业都在流行“降本增效”&#xff0c;IT行业大肆执行“开猿节流”&#xff0c;一顿操作效果如何&#xff1f;普通搬砖人谁会在乎呢。 为了收紧我的口袋&#xff0c;决定从头学习NodejsTypeScript&#xff0c;来重写我的Java后端服务。 其实这…

浅谈面向对象--知识补充

This关键字 this 内存图 this关键字表示当前对象本身&#xff0c;一般用于类的内部&#xff0c;其内部存在一个地址&#xff0c;指向当前初始化的对象本身。 当new一个对象时&#xff0c;实际上产生了两个引用&#xff0c;一个是供类Dog内部调用其成员变量和成员方法的this关键…