Java异常处理
1、异常的定义
程序错误可分为三种:1.编译错误;2.运行时错误;3.逻辑错误。
(1)编译错误是因为程序没有遵循语法规则,
(2)运行时错误是因为程序在执行时,运行环境发现了不能执行的操作。
(3)逻辑错误是因为程序没有按照预期的逻辑顺序执行。异常也就是指程序运行时发生错误,而异常处理就是对这些错误进行处理和控制。
2、异常的结构
throwable 是所有异常的共同祖先,其有两个比较常见的子类,Exception(异常)和 Error(错误),两个子类各自又包含了大量的子类。
异常和错误的区别是:异常能被程序本身可以处理,错误是无法处理。
3、异常处理的分类
Java应用处理程序中,异常处理机制为抛出异常(会创建异常对象【包含异常类型,异常出现的程序状态等】),捕获异常【寻找相关的处理器进行处理,找不到对应的程序就停止了】
对于Java而言,对于运行时异常,错误或可排查异常,Java技术要求的异常处理方式有所不同,它规定:1.对于可查异常必须捕捉,或者声明抛出;2.允许忽略不可查的RuntimeException(含子类)和Error(含子类)。
通过5个关键字来实现:try,catch,finally,throw,throws
举例说明;
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("=运算开始=");
try {
Scanner s = new Scanner(System.in);
System.out.print(“请输入第一个数:”);
int one = s.nextInt();
System.out.print(“请输入第二个数:”);
int two = s.nextInt();
System.out.println(“两数之差是:” + one / two);
}
catch(ArithmeticException e){
System.out.println(“除数不能不0”);
e.printStackTrace();
}
catch (InputMismatchException e){
System.out.println("请输入整数");
e.printStackTrace();
}
catch (Exception e) {
System.out.println("其他错误");
// 打印异常信息
e.printStackTrace();
} finally {
System.out.println("===运算结束===");
}
4、throw的用法
throws
throws语句用在方法定义时s声明该方法要抛出的异常类型;
当方法抛出异常列表中的异常时,方法将不对这些类型及其子类类型的异常作处理,而抛向调用该方法的方法,由它去处理。
2.throw:
throw抛出的只能是可抛出类Throwable或者其子类的实例对象。
当子类重写父类抛出异常的方法时,声明的异常必须是父类方法所声明异常的同类或子类。