Java教程-Java异常传播

news2024/11/16 23:38:42

异常首先从调用堆栈的顶部抛出,如果没有被捕获,它会向下传递到前一个方法。如果在那里没有被捕获,异常会再次向下传递到前一个方法,依此类推,直到它们被捕获或者达到调用堆栈的最底部。这被称为异常传播。

异常传播示例

TestExceptionPropagation1.java

class TestExceptionPropagation1{    void m(){      int data=50/0;    }    void n(){      m();    }    void p(){     try{      n();     }catch(Exception e){System.out.println("exception handled");}    }    public static void main(String args[]){     TestExceptionPropagation1 obj=new TestExceptionPropagation1();     obj.p();     System.out.println("normal flow...");    }  }

输出:

exception handled       normal flow...

在上面的示例中,异常在m()方法中发生,但没有被处理,所以它向前传播到前一个n()方法,也没有被处理,然后又传播到p()方法,其中异常被处理。

异常可以在调用堆栈中的任何方法中处理,无论是在main()方法、p()方法、n()方法还是m()方法中。

异常传播示例

TestExceptionPropagation1.java

class TestExceptionPropagation2{    void m(){      throw new java.io.IOException("device error");//检查异常  }    void n(){      m();    }    void p(){     try{      n();     }catch(Exception e){System.out.println("exception handeled");}    }    public static void main(String args[]){     TestExceptionPropagation2 obj=new TestExceptionPropagation2();     obj.p();     System.out.println("normal flow");    }  }

输出:

Compile Time Error

 

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

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

相关文章

Beego之Bee安装以及创建,运行项目

一.简介 Bee是什么? bee工具是一个为了协助快速开发 Beego 项目而创建的项目,通过 bee 可以很容易的进行 Beego 项目的 创建、热编译、开发、测试和部署 Beego中文文档 Beego中文文档: Beego简介 安装前提 在安装bee之前,首先得提前安装好Go的…

5.6.1 端口及套接字

5.6.1 端口及套接字 传输层的作用是在通信子网提供服务的基础之上为它的上层也就是应用进程提供端到端的传输服务,通信子网是由用作信息交换的网络节点和通信线路所组成的独立的数据通信系统。它承担着全网的数据传输、转接和加工变换等通信处理工作。如图 通信子网…

【前端工程化】Verdaccio搭建本地npm仓库

背景 Verdaccio 是一个 Node.js创建的轻量的私有npm proxy registry 我们在开发npm包的时候,经常需要验证发包流程,或者开发的npm包仅局限于公司内部使用时,就可以借助Verdaccio搭建一个npm仓库,搭建完之后,只要更改np…

力扣 700. 二叉搜索树中的搜索

题目来源:https://leetcode.cn/problems/search-in-a-binary-search-tree/description/ C题解1:二叉搜索树,右节点大于当前节点,左右节点小于当前节点,因此可以根据当前节点值与目标值的大小比较进行搜索。 class Sol…

【CSS】鼠标(移入/移出)平滑(显示/隐藏)下划线

文章目录 效果展示实现步骤1. 添加背景颜色2. 修改背景颜色3. 调整背景的大小4. 取消背景重复绘制5. 调小高度6. 设置背景绘制位置7. 隐藏背景8. 加入鼠标移入事件9. 平滑显示/隐藏下划线10. 调整一下背景图的位置11. 调整鼠标移入时进入的位置 效果展示 鼠标移入内容时&#…

基于matlab使用二维规范化互相关进行模式匹配和目标跟踪(附源码)

一、前言 此示例演示如何使用二维规范化互相关进行模式匹配和目标跟踪。该示例使用预定义或用户指定的目标以及要跟踪的类似目标的数量。归一化互相关图显示,当值超过设置的阈值时,将标识目标。 在此示例中,您使用规范化互相关来跟踪视频中…

行业云“组合拳”+AIGC开放战略,新华三的精耕务实之道

“今年或许不是实现宏伟目标的一年,但却是重新聚焦、重新调整和重新思考基础设施的时刻。”这是Gartner研究副总裁Paul Delory在谈到影响2023年云、数据中心和边缘基础设施趋势时所表达的观点,而影响趋势之一就是云团队将优化和重构云基础设施。对于企业…

爬虫入门指南:Python网络请求及常见反爬虫策略应对方法

文章目录 引言HTTP协议与请求方法HTTP协议请求方法 使用Python进行网络请求安装Requests库发送GET请求发送POST请求 反爬虫与应对策略IP限制使用代理IP: 用户代理检测设置User-Agent头部: 验证码参考方案 动态页面请求频率限制未完待续.... 引言 在当今…

1.盒子模型

页面布局要学习三大核心,盒子模型,浮动和定位.学习好盒子模型能非常好的帮助我们布局页面. 1.1看透网页布局的本质 网页布局过程: 1.先准备好相关的网页元素,网页元素基本都是盒子 2.利用CSS设置好盒子样式,然后摆放到相应位置 3.往盒子里面装内容. 网…

自定义MVC框架【上篇】--原理

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于自定义MVC的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.什么是自定义MVC框架? 二…

05 proxy代理、组件间的通信

React全家桶 一、脚手架配置代理(proxy)的方式 CORS: 请求url:http://www.baidu.com 发送url:http://www.jd.com response.setHeader(Access-Control-Allow-Origin,*);通过express快速搭建一个服务 创建一个图书组件 import React, { useEffect } from react import axio…

代码随想录算法训练营第51天 | 309.最佳买卖股票时机含冷冻期 + 714.买卖股票的最佳时机含手续费 + 股票问题总结

今日任务 目录 309.最佳买卖股票时机含冷冻期 - Medium 714.买卖股票的最佳时机含手续费 - Medium 股票问题总结 309.最佳买卖股票时机含冷冻期 - Medium 题目链接:力扣-309. 最佳买卖股票时机含冷冻期 给定一个整数数组prices,其中第 prices[i] 表…

字节测试工程师总结的自动化测试10个最佳实践

虽然大家都知道坚果是非常健康和有营养的,但是,当你尝试吃它的时候,我猜测过程都不会很顺利。 现实就是那么相似,我们都知道测试自动化对软件开发有好处(就像坚果对我们的身体一样!)&#xff0…

【Redis】Redis五种常用数据类型的使用方法

文章目录 一、String数据类型1. SET/GET/APPEND/STRLEN2. INCR/DECR/INCRBY/DECRBY3. GETSET4. SETEX5. SETNX6. MSET/MGET/MSETNX 二、List数据类型1. LPUSH/LPUSHX/LRANGE2. LPOP/LLEN3. LREM/LSET/LINDEX/LTRIM4. LINSERT5. RPUSH/RPUSHX/RPOP/RPOPLPUSH 三、Hash数据类型&a…

【力扣】DP/贪心:1681. 最小不兼容性

【力扣】DP/贪心:1681. 最小不兼容性 文章目录 【力扣】DP/贪心:1681. 最小不兼容性1. 题目描述2. 解题2.1 不可行2.2 DP(预处理 状态压缩 动态规划) 参考 1. 题目描述 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这…

【C++】一文理清C++中的五种强制类型转换

深入理解C中五种强制类型转换的使用场景 一、C风格的强制类型转换 使用形式: Type b (Type)a;C风格的强制类型转换很容易理解,不管什么类型都可以直接进行转换。C也支持C风格的强制类型转换,但是C风格的强制类型转换可能会带来一些隐患&a…

2023.6.29-限定次数的循环操作

首先试着实现一个功能:键入一个整数,然后显示出这个整数个“*”: 代码: int a;printf("请输入一个整数:");scanf("%d",&a);while (a-- > 0)printf("*");printf("\n")…

模拟信号、数字信号

1、模拟信号、模拟电路 1)模拟信号 是指连续变化的电信号,比如说话时的声音信号。 模拟信号可以用连续的电压或电流来表示( 模拟信号就是电信号)数字信号则是用离散的电压或电流来表示(0 或 1) 2&#x…

ROS:常用命令汇总

目录 一、前言二、rosnode三、rostopic3.1rostopic list3.2rostopic pub3.3rostpic echo3.4rostopic info 四、rosservice4.1rosservice args4.2rosservice call 五、rosmsg5.1rosmsg package5.2rosmsg show 六、rossrv6.1rossrv package6.2rossrv show 七、rosparam7.1rospara…

CSDN | CDC 城市开发者联盟开始招募啦!

一、CDC(城市开发者联盟)介绍 CDC 是由 CSDN 发起的公益性同城高端开发者社区,全称 City Developers Community,通过在每个城市招募和培养“CDC 城市合伙人”,一起在当地构建“千城千面”的线下开发者社交圈&#xff…