异常
一、基本概念
基本概念:JAVA语言中,将程序执行过程中发生的不正常情况称为”异常“。(开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常类型可分为两大类
- Error(错误):Java虚拟机无法解决的严重错误。如JVM系统内部错误、资源耗尽等严重情况
- Exception:其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码处理。Exception分为两大类:运行时异常【程序运行时发生的异常】和编译时异常【编程时,编辑器检查出的异常】
- 异常体系图:
二、异常处理
异常处理的方式:
-
try-catch-finally:程序在代码中捕获发生的异常,自行处理 -
throws:将发生的异常抛出,交给调用者(方法)来处理,最顶级的处理者就是JVM
try{
}catch(Exception e){
}finally{
}
throws异常处理:
- 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对异常进行处理,而由该方法地调用者负责处理
- 在方法声明中用throws语句可以声明抛出异常地列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是他的父类
- 对于运行时的异常,程序中如果没有处理,默认就是throws方法处理
三、自定义异常
步骤:
-
定义类:自定义异常类名(程序员自己写)继承Exception或RuntimeException -
一般来说,继承RuntimeException(运行时异常) -
例子
public class CustomException {
public static void main(String[] args) {
int score = 101;
if (!(score >= 0 && score <= 100)) {
throw new ScoreException("分数需要在0-100之间");
}
System.out.println("分数范围正确");
}
}
class ScoreException extends RuntimeException{
public ScoreException(String message) {
super(message);
}
}
- throw 与 throws的区别
| 意义 | 位置 | 后面跟的东西 |
---|
throws | 异常处理的一种方式 | 方法声明处 | 异常类型 | throw | 手动生成异常对象的关键字 | 方法体中 | 异常对象 |
|