异常
用来封装错误信息的对象(bug)
组成结构: 类型,提示,行号。
Throwable
Throwable - 顶级父类
-Error:系统错误,无法修复
-Exception:可修复的错误
-RunTimeException
-ClassCastException
-ClassNotFoundException
Exception
程序中遇到了异常(Exception),通常有两种处理方式:捕获或者向上抛出。
当调用了一个抛出异常的方法时,调用位置可以不做处理继续向上抛出也可以捕获异常。
捕获(使用try{}catch{})
try{
需要捕获的代码
}catch(异常类型 异常名){
处理方案
}
代码演示
import java.util.InputMismatchException;
import java.util.Scanner;
//测试 异常
public class Test_Exception {
public static void main(String[] args){
method();//捕获异常
}
/* 捕获异常
* try{ 代码... }catch(异常类型 异常名){ 合理的解决方案 }
* 异常类型: ArithmeticException / InputMismatchException
*/
public static void method() {
try {
int a = new Scanner(System.in).nextInt();
int b = new Scanner(System.in).nextInt();
System.out.println(a/b);
}catch(InputMismatchException a) {
System.out.println("请输入两次整数!");
}catch(ArithmeticException a) {
System.out.println("第二次输入的整数不能为0 !");
}catch(Exception a) {
//怎么捕获其他的所有异常呢?--多态--通用性强-不关心子类类型,把子类当做父类来看
//所有Exception的子类都能被捕获!
System.out.println("请输入正确的数据!!");
}
}
}
测试结果
0
0.1
请输入两次整数!
5
0
第二次输入的整数不能为0 !