异常
1 概述
异常是一些用来封装错误信息的对象
它由异常的类型、提示信息、报错的行号提示三部分组成
2 异常的继承结构
3 异常的处理方式
当程序中遇到了异常,通常有两种处理方式:捕获或者向上抛出
当一个方法抛出异常,调用位置可以不做处理继续向上抛出,也可以捕获处理异常
大家可以结合生活中的例子:如果工作中遇到了问题,我们可以选择自己处理(捕获),或者交给上级处理
捕获方式:
try-catch可以嵌套,多种异常类型需要分别处理 * 可以不嵌套,给出通用的解决方案,不需要特殊处理, * 将所有的异常的子类类型统一看做父类Exception来处理, * 提供通用的解决方案,这是多态的最为经典的一种用法
抛出方式:
对于不想现在处理或者处理不了的异常可以选择向上抛出
方式:在方法上设置异常的抛出管道,即:
在可能会会发生异常的方法上添加代码:
throws 异常类型
例如:void method1 throws Exception1,Exception2,Exception3{ }
TIPS:方法上有默认的异常管道:RuntimeException
4 练习:异常测试
创建包: cn.tedu.exception
创建类: ExceptionDemo.java
package cn.tedu.exception;
import javax.jws.soap.SOAPBinding;
import java.util.Scanner;
public class ReviewException {
public static void main(String[] args) {
f1();
f2();
// f3();
}
private static void f3() throws Exception{
System.out.println("请输入您要计算的第一个整数");
int a=new Scanner(System.in).nextInt();
System.out.println("请输入您要计算的第二个整数");
int b=new Scanner(System.in).nextInt();
//输入6与0,ArithmeticException: / by zero算数异常,原因除数不能为零
//输入3与4.4,InputMismatchException:nextInt();输入不匹配异常
System.out.println(a/b);
}
private static void f2() {
try{
f1();
}catch( Exception e){
System.out.println("输入正确的数据");
}
}
private static void f1() {
System.out.println("请输入您要计算的第一个整数");
int a=new Scanner(System.in).nextInt();
System.out.println("请输入您要计算的第二个整数");
int b=new Scanner(System.in).nextInt();
//输入6与0,ArithmeticException: / by zero算数异常,原因除数不能为零
//输入3与4.4,InputMismatchException:nextInt();输入不匹配异常
System.out.println(a/b);
}
}