2022-07-29 java之异常
2022/7/30 14:22:48
本文主要是介绍2022-07-29 java之异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 一、异常
- 1. 异常的概念
- 2. 异常体系
- 3.图解异常处理的流程
- 4.异常处理
- 1.抛出异常throw
- 2.捕获异常try{}catch{}
- 3 声明异常throws
- 4. finally代码块
- 5.一次捕获多个异常多次处理的方式
- 5.自定义异常实例
- 6.面试题
一、异常
1. 异常的概念
异常,是不正常的意思 ,程序中执行过程中,出现了非正常情况,严重会导致JVM的非
正常停止。
在Java面向对象编程中,把异常视为一个对象,可以把异常定义成一个类。
产生异常就是要创建一个异常对象并抛出一个异常对象。
异常并不是指语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运
行。
2. 异常体系
异常的根类是:java.lang.Throwsable
其下有两个类:java.lang.Error和java.lang.Exception,,平时异常就是指Exception
3.图解异常处理的流程
4.异常处理
1.抛出异常throw
在Java中,提供一个throw关键字,它用来抛出异常对象
- 创建一个异常对象 throw new 异常对象
- 需要将这个异常通知给调用者,怎么告诉对方,通过throw就可以完成。
2.捕获异常try{}catch{}
3 声明异常throws
声明异常:将问题标识出来,给调用者,如果不对异常立即处理,你需要声明出,交给
调用者来处理。
4. finally代码块
finally:不管程序是不是出异常了,finally块中代码必须执行
无论什么时侯代码必须最终执行
一般在创建流,使用流之后 ,用来关闭流
5.一次捕获多个异常多次处理的方式
try{ read("b.txt"); }catch (FileNotFoundException e){ e.printStackTrace(); }catch (IOException e){ e.printStackTrace(); }catch (Exception e){ e.printStackTrace(); } finally { System.out.println("不管理程序怎样, 这里都将被执行"); }
5.自定义异常实例
- 自定义一个编译期异常,自定义类,继承于Exception
- 自定义一个运行期异常类,并继承于 RuntimeException
6.面试题
面试题1: throws 和 throw的区别(记忆)
throws
- 用在方法声明之后,跟的是异常类名
- 表示声明异常,由该方法的调用者来处理
- 表示出现该异常可能性,并不一定会发生异常
throw
- 用在方法体内,跟的异常对象名(new Exxx())
- 表示抛出异常,由方法体内的语句来处理
- 执行throw 一定抛出了某种异常
位置不同:
throws 用方法上,后面跟的是异常类,可以跟多个;
而 throw 用在方法内,后面跟的 是异常对象。 throw new ...
功能不同:
throws 声明 异常,表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出
了异常,
执行 throw 则一定抛出了某种异常对象
面试题2: 编译期异常 和 运行时异常的区别(记忆)
编译期异常(checked)异常:
- 在编译时期,就会检查,如果没有处理异常,则编译失败
- 都是Excetion类及其子类
运行期异常(runtime)异常:
- 在运行时期,检查异常,在编译时期不会报错
- 都是RuntimeException类及其子类
面试题3:Java的异常体系Error和 Exception的区别和联系
这篇关于2022-07-29 java之异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署