day17
异常:
异常的概述
1、在java程序运行过程中,出现的不正常情况,出现的错误,称为异常
2、异常就是一个对象,描述那些不符合生活正常情况的异常情况,包含了这些情况的原因、类型、描述以及位置,这些内容都封装到异常对象中。
3、异常也是一种处理异常情况的机制,可以进行跳转、捕获以及结束程序
异常的体系
1、Throwable:
可抛出的,是异常体系的顶层父类,其他的异常或者错误都是Throwable的子类类型,只有Throwable的体系类型,才可以使用异常的处理机制
2、Error错误:
是Throwable的子类,用于描述那些无法捕获和处理的错误情况,属于非常严重的错误,StackOverflowError
3、Exception异常:
是Throwable的子类,用于描述那些可以捕获和处理的例外情况,属于不太严重的错误,ArrayIndexOutOfBoundsException
4、RuntimeException:
运行时异常,是Exception的特殊的子类,在编译阶段不做检查的一个异常
体系图
Throwable(可抛出的)
Error(错误)必须修改源代码
Exception(异常) 捕获和处理
RuntimeException
Exception下除了RuntimeException其他的类都是编译时异常,这些必须处理程序才能运行,而RuntimeExcetpion及它子类都是运行时异常,可以不处理也能运行,只有程序运行过程中除了出了问题才会把运行时异常抛出
在jvm中默认处理异常的机制
常见的异常:
ArithmeticException 数学运算异常
ArrayIndexOutOfBoundsException 索引越界异常
NullPointerException 空指针异常
处理异常的五个关键字:
try 、catch 、 finally 、 throw 、 throws
手动处理异常的方式
1、有两大类处理异常的方式:
异常的声明:某个方法有编译时异常,编译就会无法通过,需要在异常所在的方法声明上,声明该方法可能出现的编译时异常
异常的处理:出现异常之后,可以通过某些格式来捕获和处理异常,可以让程序在出现异常之后,继续运行。可以定义自己处理异常的逻辑。
2、捕获处理异常的代码格式:
try…catch
格式:
try {
可能出现异常的代码
} catch (异常类型1 异常对象名1) {
异常类型1出现之后的处理办法
} catch (异常类型2 异常对象名2) {
异常类型2出现之后的处理办法
}
…
} catch (异常类型n 异常对象名n) {
异常类型n出现之后的处理办法
}
try…catch…finally
格式:
try {
可能发生异常的代码
} catch (可能发生的异常类型 异常对象名称) {
当前异常类型的处理方式
} finally {
一定要执行的代码
}
try…finally(无法捕获处理异常)
格式:
try {
可能发生异常的代码
} finally {
一定要执行的代码
}
编译时异常和运行时异常区别
异常体系中的常用方法
throw关键字
throws关键字
throw和throws的区别:
- throw 是异常的申明 throws 用于异常抛出
2. throw 确实会发生异常 throws 异常不一定会出现
3. throw 后面只能够跟 一个 throws 可以跟多个
4. throw 与 throws 搭配使用
File类:
File类
注意点:File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变
File类型的构造方法
File类型的创建方法
File类型的删除方法
File类型常用的判断功能
递归: