java异常处理流程
在Java中异常被当做对象来处理,根类是java.lang.Throwable类,在Java中定义了很多异常类(如OutOfMemoryError、NullPointerException、IndexOutOfBoundsException等),这些异常类分为两大类:Error和Exception。
Error:指的是JVM错误,即,此程序还没有执行,如果没有执行用户无法处理这个异常。
Exception:指的是程序运行中产生的异常,用户可以处理,也就是所谓的异常处理指的是所有Exception以及它的所有子类。
*java中的异常处理流程:
(1)当程序在运行的过程之中出现异常之后,JVM会自动根据异常的类型实例化一个与之类型匹配的异常对象
(此时用户不用去关心new,有系统自动负责处理)
(2)产生异常对象之后会判断当前的语句是否存在有异常处理,如果现在没有异常处理,
那就交给JVM进行默认的异常处理,处理的方式:输出异常信息,而后结束程序的调用,
(3)如果此时存在异常的捕获操作,那么会由try语句来捕获产生的异常实例化对象,而后与try语句后的每一个catch语句进行比较,如果有符合的异常处理,即使用当前catch语句进行异常处理,如果不匹配,则匹配剩下的catch语句。
(4)不管最后异常处理是否能够匹配,那么都要向后执行,如果此时程序中存在finally语句,那么就先执行finally中的代码,但是执行完毕后需要根据之前的catch匹配结果来决定如何执行,如果之前已经成功的捕获类异常,那么就继续执行finally之后的代码,如果之前没有成功的捕获异常,那么就将此异常交给JVM进行默认处理(输出异常信息,
结束程序执行)
处理提示:
*:在整个捕获异常的时候,要将捕获范围大的异常放在捕获范围小的异常之后,否则出现编译错误。
*:虽然直接 捕获Exception比较方便,但是在处理大型项目时建议写出具体的异常。
throw与throws的区别
Throws:在方法的声明上使用,表示此方法在调用时必须处理异常。
Throw:指的是在方法之中人为抛出一个异常类对象(这个异常对象可能是自己实例化或者是抛出已存在的)
相关文章
- Java实现 LeetCode 437 路径总和 III(三)
- Java实现UVA10131越大越聪明(蓝桥杯每周一题)
- java实现汉诺塔计数
- java实现第五届蓝桥杯切面条
- java实现第七届蓝桥杯平方圈怪
- Java实现第九届蓝桥杯螺旋折线
- Java实现插入排序
- Java实现 蓝桥杯VIP 算法提高 欧拉函数
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- Triple 协议支持 Java 异常回传的设计与实现
- 【JAVA】 02-Java对象细节
- 【JAVA】 03-Java中的异常和包的使用
- 《Java并发编程的艺术》--Java中的锁
- 深入理解JAVA虚拟机--Idea远程执行本地Java代码
- 【JAVA】Java 异常中e的getMessage()和toString()方法的异同
- Java基础篇3——流程控制
- 在Java中可以使用自定义的java.net.InetAddress实现来解决虚拟hosts的问题
- 使用Java标准的java.util.EventListener实现观察者-发布者设计模式
- Java使用poi操作cexel
- Atitit 搜索蓝牙设备 powershell的实现 java noede.js python 先用脚本语言python nodejs,不好实现。。Java 也不好实现。。 Netcore可以,
- 【java】Java经典面试题整理(附答案)
- Simple Logging Facade for Java (SLF4J)作用(java日志框架)
- Java:org.apache.commons.lang3.StringUtils判断字符串为空
- 解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题
- Java如何检查日期格式是否正确?
- 【一起学Java-第四篇】流程控制
- Java Swing JProgressBar:进度条组件
- 【java】Java 抽象类
- 【java】Java 继承
- 【java】Java IO体系总览
- 【快速入门大数据】第一部分:Java基础知识回顾之语言基础01:开发环境配置、数据类型、运算符、流程控制