概述
声明:博主的学习笔记
文章前言:
所谓异常,字面意思:情况有点不一样了。其实我们学习任何一门程序语言,从刚刚入门就会接触到了异常,只不过没有进行分类,总结的去全面的认识异常,本博客将会带你解读异常的相关知识,系统的去学习异常
文章目录:
1、认识异常
2、防御式编程
3、异常的完整用法
4、Java 的异常体系结构
5、finally
6、函数之间的异常处理
7、异常处理流程
8、抛出异常
9、自定义异常实现用户登录
10、自定义异常练习
1、认识异常
我们先看一些常见的异常:三种基本异常
我们可以发现上面的三种不同的代码,是三种不同的情况的异常
异常的定义:
所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制.
注意:其实在有些情况下,异常也有可能不是在 运行时 出现的
有一些拼写的 错误(这里的不叫异常),例如:
将 System.out.println 拼写错了, 写成了 system.out.println. 此时编译过程中就会出错, 这是 “编译期” 出错
2、防御式编程
错误在代码中是客观存在的,谁写的代码也无法保证错误,所以代码都可能会存在异常,我们主要由以下两种方式:
LBYL: Look Before You Leap. 在操作之前就做充分的检查.
EAFP: It’s Easier to Ask Forgiveness than Permission. “事后获取原谅比事前获取许可更容易”. 也就是先操作, 遇到 问题再处理.
LBYL 风格的代码(不使用异常)
EAFP 风格的代码(使用异常)
3、异常的完整用法
try{
有可能出现异常的语句 ;
}[catch (异常类型 异常对象) {
} ... ]
[finally {
异常的出口
}]
先看一个没有被处理的异常:
使用 try catch 语句对异常进行一个捕获与处理:
但是如果异常语句后面仍存在语句,后面的语句不会被执行:
如何显示出来处理的是什么异常(查明异常的类型):
出现异常红字的好处:
处理异常与不处理异常的区别:
- 未处理异常:这个异常会交给 JVM ,程序会在异常处直接终止,异常后面的任何语句都不会被执行
- 处理异常:使用 try catch 包裹异常后,仅仅只有 try 语句块中异常后面的语句不被执行,try catch 语句块后面的语句还是会正常运行
看一种情况,当你的 try 语句段抛出的异常没有被 catch 捕获的时候,此时证明没有处理该异常,异常就会交给 JVM 程序在异常处立即终止
处理方法:
一个 catch 语句也可以捕获多个异常
也就是说:当 try 中发生异常时,对应的 catch 要捕获对应的异常,如果没有捕获对应的异常,异常就会交给 JVM 处理,一旦交给 JVM 处理程序立刻结束
如何分辨程序是异常结束还是正常结束
4、Java 的异常体系结构
声明:仅展示部分,其余的还有很多异常,遇到查帮助手册即可
既然 Exception 是所有异常的父类,那么再 catch 捕获异常时,可不可以这样写:
答案是:可以但不推荐,因为 Exception 可以代表太多的异常
看一个错误代码事例:
所以:在 catch 捕获异常的时候,最好从上到下,是子类异常---->父类异常,不要是父类异常----->子类异常。最好写具体的异常类
5、finally
finally 一般用于资源的关闭
也可以这样写:
注意:当异常交给 JVM 处理的时候,finally 也会被执行
观察:以下一个代码
所以注意:尽量避免在 finally 语句中出现 return 语句
6、函数调用之间的异常处理:
所以:
为了方便函数调用者去处理异常,可以在函数中声明异常
7、异常处理流程:
注意:当出现大量红色字体的时候,程序不一定出现了错误,例如在使用 Tomcat 的时候运行 jsp 文件的时候就会出现大量红色的字体,其并不是错误
8、抛出异常
除了 Java 内置的类会抛出一些异常之外, 程序猿也可以手动抛出某个异常. 使用 throw 关键字完成这个操作.
但是上面的代码中 throw 使用的不好,throw 应该抛出的是自定义异常
9、自定义异常实现用户登录
根据自定义异常继承的父类类别,可以把自定义类型异常分为两种,受查异常,非收查异常
1、非受查异常
2、受查异常
利用自定义异常实现用户名登录过程:
10、自定义异常练习
问题:处理异常使其不再报异常
本文结束:
上面的就是 java 异常相关的内容,如有错误 + 不清晰的知识点,随时练习博主,谢谢大家的支持!!!!!!!!!!!!!
最后
以上就是结实便当为你收集整理的程序出错了咋办?今天带你解决------详解Java异常本文结束:的全部内容,希望文章能够帮你解决程序出错了咋办?今天带你解决------详解Java异常本文结束:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复