没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、知识点总结
(1)异常处理概述
(2)异常处理的方式1:try-catch-finally
(3)异常处理的方式2:throws
(4)throw手动抛出异常对象
(5)自定义异常
二、企业真题
(1)异常概述
1、题目1
2、题目2
3、题目3
4、题目4
5、题目5
(2) try-catch-finally
1、题目1
2、题目2
3、题目3
4、题目4
5、题目5
6、题目6
(3)throw与throws
1、题目1
2、题目2
(4)自定义异常
1、题目1
一、知识点总结
(1)异常处理概述
文章链接:https://blog.csdn.net/m0_55746113/article/details/135473445?
spm=1001.2014.3001.5502
1. 什么是异常?
指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。
(逻辑上的错误不算)
2. 异常的抛出机制
Java中把不同的异常用不同的类表示,一旦发生某种异常,就 创建该异常类型的对象 ,并且抛
出( throw )。
然后程序员可以捕获( catch )到这个异常对象,并处理;如果没有捕获( catch )这个异常对
象,那么这个异常对象将会导致程序终止。
3. 如何对待异常
对于程序出现的异常,一般有两种解决方法:
一是遇到错误就终止程序的运行。另一种方法是程序员在编写程序时,就充分考虑到各种可能
发生的异常和错误,极力预防和避免。实在无法避免的,要编写相应的代码进行异常的检测、
以及 异常的处理 ,保证代码的 健壮性 。
4. 异常的体系结构
java.lang.Throwable :异常体系的根父类 (它的父类是Object)
java.lang.Error :错误。(基本不做处理)
Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一
般不编写针对性的代码进行处理。- StackOverflowError (栈内存溢出)
OutOfMemoryError (堆内存溢出,简称OOM)
java.lang.Exception :异常。
我们可以编写针对性的代码进行处理。
编译时异常:(受检异常) 在执行 javac.exe 命令时,出现的异常。(这一章的异常
处理针对的就是它)
ClassNotFoundException
FileNotFoundException
IOException
运行时异常:(非受检异常) 在执行 java.exe 命令时,出现的异常。(基本不做处理)
ArrayIndexOutOfBoundsException (数组越界--用非法索引访问数组时抛出的异
常)
NullPointerException (空指针异常)
ClassCastException (类转换异常)
NumberFormatException (数据格式化异常)
InputMismatchException (输入类型不一致)
ArithmeticException (算术异常)
(2)异常处理的方式1:try-catch-finally
文章链接:https://blog.csdn.net/m0_55746113/article/details/135547506?
spm=1001.2014.3001.5502
1. 方式一(抓抛模型): try-catch-finally
过程1:“抛”-- 产生异常的对象
程序在执行的过程当中,一旦出现异常,就会在出现异常的代码处,生成对应异常类
的对象,并将此对象抛出。(目前先看自动创建异常的对象并抛出)
一旦抛出,此程序就不执行其后的代码了。
过程2:“抓”-- 捕获处理
针对于过程1中抛出的异常对象,进行捕获处理。此捕获处理的过程,就称为抓。
一旦将异常进行了处理,代码就可以继续执行。
2. 基本结构:
3. 使用细节:
将可能出现异常的代码声明在try语句中。一旦代码出现异常,就会自动生成一个对应异常类的
对象。并将此对象抛出。
针对于try中抛出的异常类的对象,使用之后的catch语句进行匹配。一旦匹配上,就进入catch
语句块进行处理。一旦处理结束,代码就可继续向下执行。
如果声明了多个catch结构,不同的异常类型在不存在子父类关系的情况下,谁声明在上面,
谁声明在下面都可以。如果多个异常类型满足子父类的关系,则必须将子类声明在父类结构的
上面。否则,报错。
catch中异常处理的方式:
① 自己编写输出的语句。
② printStackTrace():打印异常的详细信息。 (推荐)
③ getMessage():获取发生异常的原因。
try中声明的变量,出了try结构之后,就不可以进行调用了。
try-catch结构是可以嵌套使用的。
4. 开发体会:
对于运行时异常:
对于编译时异常:
5. finally的使用说明:
5.1 finally的理解
我们将一定要被执行的代码声明在finally结构中。
更深刻的理解:无论try中或catch中是否存在仍未被处理的异常,无论try中或catch中是否存
在return语句等,finally中声明的语句都一定要被执行。
finally语句和catch语句是可选的,但finally不能单独使用。
try{
...... //可能产生异常的代码
}
catch( 异常类型1 e ){
...... //当产生异常类型1型异常时的处置措施
}
catch( 异常类型2 e ){
...... //当产生异常类型2型异常时的处置措施
}
finally{
...... //无论是否发生异常,都无条件执行的语句
}
开发中,通常就不进行显示的处理了。
一旦在程序执行中,出现了运行时异常,那么就根据异常的提示信息修改代码即可。
一定要进行处理。否则编译不通过。
剩余10页未读,继续阅读
资源评论
雨翼轻尘
- 粉丝: 6w+
- 资源: 130
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功