第七章 ---- 异常处理
文章目录
- 异常
- 异常体系结构
- 异常处理机制
- try {} catch{} finally{}
- throws
- 开发中
- throw
- 自定义异常
异常
异常体系结构
运行时异常:运行时出现的异常
编译时异常:编译时出现的异常
异常处理机制
try {} catch{} finally{}
异常处理是通过try-catch-finally语句实现的。
try{...... //可能产生异常的代码
}
catch( ExceptionName1 e ){...... //当产生ExceptionName1型异常时的处置措施
}
catch( ExceptionName2 e ){...... //当产生ExceptionName2型异常时的处置措施
}[ finally{...... //无论是否发生异常,都无条件执行的语句
} ]
说明:
- finally 是可选的
- 使用try将可能出现异常代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常类的对象
- 一旦处理完成后就会跳出try{}catch结构,继续执行后面的代码
- 后面的异常类型要大于或与前面的异常类型互斥
- 常用的异常对象处理方式:
String getMessage()
、printStackTrace()
- 在try结构中声明的变量,出了try结构以后,就不能再被调用
try{}catch{}:将编译期异常推到运行期,可以捕获运行期异常
运行时异常通常不编写try{}catch{}
finally 说明
- finally是可选的,在finally中声明的是一定会被执行的代码。即使catch中出现了异常,try中有return,catch中有return,也一样会被执行
- 像数据库连接、输入输出流、网络编程Socket等资源,JVM是不能自动回收的,我们需要自己手动的进行资源的释放。此时就需要声明在finally中
@Testpublic void test(){FileInputStream fis = null;try {//获取项目根目录下文件File file = new File("hello.txt");fis = new FileInputStream(file);int data = fis.read();while (data != -1){System.out.print((char)data);data = fis.read();}}catch (FileNotFoundException e){e.printStackTrace();}catch (IOException e){e.printStackTrace();}finally{try {if (fis != null) {fis.close();}}catch (IOException e){e.printStackTrace();}}}
public class CMD{public static void main()
}
throws
将异常向上抛出,抛给方法调用者,指明该方法使用时可能出现的异常
子类重写的方法抛出的异常类型,不大于父类重写的方法抛出的异常
开发中
在方法的调用者处集中处理,在被调用方法一般向上抛
throw
throw是产生异常对象,throws是处理异常对象方式
一般throws new RuntimeException(); throw new Exception(); 以及自定义异常
自定义异常
如何自定义异常类
- 继承与现有的异常结构:
RuntimeException
、Exception
- 提供全局常量:serialVersionUID
- 提供重载的构造器
public class MyException extends RuntimeException{static final long serialVersionUID = -703478989082389Lpublic MyException(){}public MyException(String msg){super(msg);} }
第七章 ---- 异常处理相关推荐
- CoreJava 笔记总结-第七章 异常,断言和日志
文章目录 第七章 异常,断言和日志 处理错误 异常的分类 声明检查型异常 如何抛出异常 创建异常类 捕获异常 捕获单个异常 捕获多个异常 再次抛出异常和异常链 `finally`子句 `try-wit ...
- java第七章jdbc课后简答题_java学习路线流程
第一阶段JavaSE: 第一章:jdk的安装与配置 第二章:Java基础语法: 变量.常量.数据类型.关键字 运算符和表达式:运算符:+.-.*./ 表达式:正则表达式 关系及逻辑运算符:关系运算符: ...
- 第七章 Java基础类库
前言:如果你真正学习到了这里,那么先容许我夸赞一下你,太棒了!哪怕你对前面六篇文章的掌握度达到50%也是非常了不起的了,关于后面的文章学习我只能说,非常简单,只是我们文章会非常详细的介绍实现原理和一些 ...
- C++对象模型-在对象模型的尖端 第七章笔记
读完C++对象模型书后,做一个笔记整理 第一章-关于对象 第二章-构造函数语义学 第三章-Data语义学 第四章-Function语义学 第五章-构造拷贝解析语义学 第六章-执行期语义学 第七章-在对 ...
- Core Java 读后感 - 第七章 异常、断言和日志
第七章 异常.断言和日志 7.1 处理异常 如果由于出现错误使得某些操作没有完成, 程序应该: 返回到一种安全状态,并能够让用户执行其他命令 允许用户保存所有工作的结果,并以妥善的方式终止程序 异常处 ...
- 计算机原理与应用第七章——中断系统与Cortex-M微处理器的异常
第七章--中断系统与Cortex-M微处理器的异常 文章目录 第七章--中断系统与Cortex-M微处理器的异常 一.异常和中断的基本概念 (一)中断源 (二)中断管理 (三)中断优先级管理 (四)中 ...
- 数字图像处理——第七章 小波和多分辨处理
数字图像处理--第七章 小波和多分辨率处理 文章目录 数字图像处理--第七章 小波和多分辨率处理 写在前面 1 多分辨率处理 1.1 图像金字塔 1.2 多尺度和多分辨率的区别 2 小波 2.1 连续 ...
- 现实迷途 第七章 特殊客户
第七章 特殊客户 注:原创作品,请尊重原作者,未经同意,请勿转载,否则追究责任. 江北一般都是上午待在办公室里,搜集信息或整理以前做过的系统,下午才出去站街招客. 站街站了一段时间后,江北有点不想去了 ...
- stm32 工业按键检测_「正点原子STM32Mini板资料连载」第七章 按键输入实验
1)实验平台:正点原子STM32mini开发板 2)摘自<正点原子STM32 不完全手册(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第七章 按键输入实验 上一章,我们介 ...
最新文章
- base64开源库介绍及使用
- 我也来晒Flex编写的工作流编辑器
- ElasticSearch 数据类型keyword和text的区别
- Eclipse 浏览(Navigate)菜单
- 13寸笔记本电脑尺寸_2019年五款最好的13英寸笔记本电脑(windows)
- 十六进制字符串转整形
- 华为Mate 40系列还有新升级:有望首发66W超级快充
- vue element Form-Item prop
- 【转】如何在Qt 4程序中优化布局结构-兼回答网友提问
- 如何实现在Windows上运行Linux程序,附示例代码
- [转载] 使用Python中的NLTK和spaCy删除停用词与文本标准化
- 奋斗吧,程序员——第二十九章 伤心桥下春波绿,疑是惊鸿照影来
- 教师计算机应用能力现状分析,信息技术教学应用个人现状分析以及发展计划
- axios爬坑之provisional headers are shown
- “自贸云”+“自贸大数据”将加速辽宁自贸区建设与创新
- 台式计算机无线网络,台式电脑如何使用无线上网?
- 南京信息工程大学python期末考试_南京信息工程大学的雷丁学院怎么样?
- 中企海外周报 | 华为在西班牙启动Wi-Fi 6高校创新应用测试试点;爱奇艺人脸识别技术获全球学术会议认可...
- SpringMVC 406
- 数学与应用数学专业考计算机研究生,数学与应用数学专业学生考研有哪些方向 数学与应用数学专业学生考研方向是怎样的...
热门文章
- 【报告分享】2020直播电商生态白皮书.pdf(附下载链接)
- 全球首发!计算机视觉Polygon Mesh Processing读书笔记——5微分几何中的弧长
- sklearn中的train_test_split函数
- 跨境电商独立站门槛高,为什么还有无数人挤破头想入坑!
- TikTok玩法攻略总结,从输出内容再到变现,结尾送干货!
- Leetcode每日一题:24.swap-nodes-in-pairs(两两交换链表中的节点)
- CCF2015-12-2 消除类游戏
- 白板机器学习笔记 P13-P21 线性分类
- 离线批量数据通道Tunnel的最佳实践及常见问题
- python项目软件代码_七套Python库快速提升您项目的代码可维护性,软件工程,代码库...