Java教程-Java异常传播

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

异常传播示例

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.hqwc.cn/news/2076.html

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

相关文章

git 显示不出图标

今天写完代码准备上传 gitee 的时候发现,自己的本地文件夹没有小绿勾了,整的我一时分不清到底哪些文件已经上传过。 研究了半天终于搞定了,现在把方法记录下来,防止以后继续出现这种问题还要找半天。 1. 打开注册表 win R 打开运…

JAVA选择题笔试:static成员与非static成员、父类子类方法的继承、接口与抽象类、final的使用

0、前言 本文针对一些java基础知识的一些考点做出解析。 1、静态成员 与 非静态成员 静态变量与静态方法都是静态成员。 先说静态变量与普通成员变量的区别,例如如下两个变量: public class Demo {public static String A "静态变量";publi…

draggable里包裹的卡片,卡片里有个input,点击input聚焦无效。

在input标签上加pointerdown.stop.native <el-input placeholder"请输入" pointerdown.stop.native v-model"dataForm.nickName" :style"{width:180px}" suffix-icon"el-icon-search" lazy />

HCIP-7.3QinQ技术原理、配置链路聚合Eth-Trunk

HCIP-7.3QinQ技术原理、配置&链路聚合Eth-Trunk 1、QinQ概述1.1、QinQ实现方式&#xff1a;1.2、QinQ封装结构&#xff1a;1.3、QinQ的分类&#xff1a;1.3.1、基于端口的QinQ1.3.2、灵活QinQ 2、链路聚合Eth-Trunk2.1、Eth-Trunk基本原理2.2、手工聚合模式2.2.1、配置接口…

FinalShell连接不上Ubantu

解决方法 1.ssh服务问题 1.先安装openssh-server服务 sudo apt install aopenssh-server 2.重启ssh服务 sudo systemctl restart ssh 2.防火墙问题 1. 直接关闭防火墙(最省时) ufw stop 2. 开放FinalShell要连接的端口号,下图。 ufw allow 22

html_4——知识总结

html_4——知识总结 一、计算机基础知识二、html4总结2.1 html基本结构2.2 全局属性-id,class,style,dir,title,lang2.3 格式排版标签-div,p,h1-h6,br,hr,pre2.4 文本标签-span,en,strong,del,ins,sub,sup2.5 图片标签-img:src,alt,width,height,boder2.6 超链接-a:herf,target…

STM32实战项目—停车计费系统

文章目录 一、任务要求1.1 概述1.2 串口收发1.2.1 串口输出内容1.2.2 串口接收内容 1.3 说明 二、实现思路2.1 指令判别2.1 车辆进入2.2 车辆驶出2.3 费率调整 三、程序设计3.1 串口接收消息处理3.2 车辆驶入处理函数3.3 车辆驶出处理函数3.4 费率调整处理函数 题目原型是第十二…

【服务器数据恢复】raid5故障导致LUN无法访问的数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器中有一组由数块SAS硬盘组建的RAID5阵列&#xff0c;阵列中有1块热备盘&#xff0c;上层部署OA以及Oracle数据库。 服务器故障&#xff1a; 该磁盘阵列中有2块硬盘出现故障先后离线&#xff0c;RAID5阵列瘫痪&#xff0c;上层LUN无法…

【解决openGauss安装后yum、ssh命令无法使用】

【解决openGauss安装后yum、ssh命令无法使用】 &#x1f53b; 一、操作系统及数据库版本&#x1f530; 1.1 操作系统版本&#x1f530; 1.2 openGauss数据库版本 &#x1f53b; 二、关于openGauss安装&#x1f53b; 三、问题详情&#x1f530; 3.1 使用yum命令报错&#x1f530…

【数据库原理与实践】知识点归纳(下)

第6章 规范化理论 一、关系模式设计中存在的问题 关系、关系模式、关系数据库、关系数据库的模式 关系模式看作三元组&#xff1a;R < U,F >&#xff0c;当且仅当U上的一个关系r满足F时&#xff0c;r称为关系模式R < U,F >的一个关系 第一范式&#xff08;1NF&…

python最佳开发环境组合(pycharm+anaconda)

一、pycharmanaconda是python 最佳开发环境组合 1.pycharm与vscode对比 pycharm社区版与pycharm pro pycharm pro 与vscode 二、anaconda Anaconda Python 集成包 工具箱。 所以没有必要下载传统Python (cPython)个人十分不推荐使用传统python做科学计算&#xff0c; 一来…

SpringBoot-集成FTP(上传、下载、删除)

目录 一、引入依赖 二、配置文件 三、Controller层 四、Service层 五、相关工具类 由于服务在内网部署&#xff0c;需要使用ftp服务器管理文件&#xff0c;总结如下 一、引入依赖 <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <depen…