这是我整理的笔记,希望有帮助!
异常就是程序中存在的问题
在java中程序出问题有两种情况下
Exception------->解决
Error----------->不能解决
Throwable 这是Exception与Error的父类
Throwable
|-----Exception
|-----Error
命名规范
所有异常都是使用Exception做为后缀
所有的错误都是使用Error做为后缀.
为什么使用异常
对一些情况我们可以使用if条件语句进行判断解决
存在的隐患,为什么还要使用异常?
1.我们使用异常,可以将我们程序中的逻辑代码与异常问题分离。
而使用if判断操作,是将逻辑代码与判断操作混到一起,
它会使用程序不清晰。
2.当我们完成某个操作时,这个操作是否执行成功了,我们需要根据执行成功与否
进行其它操作,但是这个方法它不能进行返回操作,那么这个时候就可以使用
异常进行处理。
Exception的处理方式 1.捕获 2.抛出
捕获
格式
try{
可能出现异常的代码块
}catch(异常类型 变量){
对异常进行处理.
}finally{
完成关闭动作(关闭资源)
}
如果出现异常,那么异常后面的代码不会被执行。
关于异常中常用的方法.
getMessage()
获取异常信息,返回字符串。
toString()
获取异常类名和异常信息,返回字符串。
printStackTrace()
获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
异常处理 抛出
throws 异常类型1,异常类型2,...
写在方法上.
抛出是抛给了调用者,如果调用者也没有处理,继续抛出,那么最终就会
抛出给jvm。
什么时候使用捕获,什么时候使用抛出?
如果当前问题在方法内可以自己解决,那么我们就进行捕获。
如果解决不了,那么抛出给调用 者,让调用者解决。
异常分类
异常分为两种
1.编译异常
当我们对java文件进行编译时,就要求我们对产生的异常进行处理,
这种异常就是编译异常。
Exception类以及除了RuntimeException体系中的其它类都是编译异常。
2.运行异常
我们可以不用对其进行处理,如果出现问题,jvm会处理.
RuntimeException以及其子类都是运行异常
无论是编译异常还是运行异常,我们都可以人为的对其进行处理。
自定义异常
简单说就是自己做一个类去继承异常类。这就是自定义异常。
为什么要使用自定义异常?
在实际操作中,有些问题,不能使用jdk中提供的异常进行描述,
这个时候我们就可以自已定义异常来对其进行描述。
我们在使用自定义异常时会使用一个关键字 throw
throw作用是抛出异常对象。
|