异常分类:
异常的根类是Throwable,有两个子类:Error与Exception,我们平时所说的异常指Exception。
1.严重错误Error,无法通过处理的错误
2.编译时异常Exception,编译时无法编译通过。
3.运行时异常RuntimeException,是Exception的子类,运行时可能会报错,可以不处理。
异常处理:
捕获处理:将异常获取,使用try/catch做分支处理
Try{
需要检测的异常;
}catch(异常对象){
异常处理代码}
生命抛出处理:
出现异常后不处理,生命抛出给调用者处理
方法声明上加throws 异常类名
捕获异常try….catch….finally
Try{
//需要被检测的语句
}
Catch(异常类 变量){
//异常的处理语句
}
Finally{
//一定会被执行的语句
}
例:
定义main()方法,按以下要求编写代码:
从控制台接收一个整数;
使用try…catch…监控这一过程,如果用户输入了非数字,
在catch语句中向用户打印:请输入一个整数!
(catch捕获的异常:InputMismatchException)
代码实现:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try{
System.out.println("键盘输入一个整数");
int a = sc.nextInt();
System.out.println(a);
}catch(InputMismatchException e){
System.out.println("输入错误,请输入一个整数");
}
}
结果:
输入122,输出:122
输入qqq,输出:输入错误,请输入一个整数
异常的根类是Throwable,有两个子类:Error与Exception,我们平时所说的异常指Exception。
1.严重错误Error,无法通过处理的错误
2.编译时异常Exception,编译时无法编译通过。
3.运行时异常RuntimeException,是Exception的子类,运行时可能会报错,可以不处理。
异常处理:
捕获处理:将异常获取,使用try/catch做分支处理
Try{
需要检测的异常;
}catch(异常对象){
异常处理代码}
生命抛出处理:
出现异常后不处理,生命抛出给调用者处理
方法声明上加throws 异常类名
捕获异常try….catch….finally
Try{
//需要被检测的语句
}
Catch(异常类 变量){
//异常的处理语句
}
Finally{
//一定会被执行的语句
}
例:
定义main()方法,按以下要求编写代码:
从控制台接收一个整数;
使用try…catch…监控这一过程,如果用户输入了非数字,
在catch语句中向用户打印:请输入一个整数!
(catch捕获的异常:InputMismatchException)
代码实现:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try{
System.out.println("键盘输入一个整数");
int a = sc.nextInt();
System.out.println(a);
}catch(InputMismatchException e){
System.out.println("输入错误,请输入一个整数");
}
}
结果:
输入122,输出:122
输入qqq,输出:输入错误,请输入一个整数