异常父类 :Throwable 其下主要两大子类:Error ,Exception
Error主要包括系统错误,如虚拟机错误,线程死锁等,Exception主要指 编码,环境,用户操作输入出现问题。
Exception其下子类主要包括非检查异常(RuntimeException)和检查异常,非检查异常主要包括空指针异常,数组下标越界异常,类型转换异常,算术异常。
举例算术异常:
package yh;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=9,b=0;
System.out.println(a/b);
}
}
编译如下:
可见系统自动抛出异常。
检查异常不同于非检查异常,它需要用户自己捕获异常并处理异常。常用try...catch语句捕获异常。
示例:
package yh;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int a,b;
try{
System.out.println("请输入第一个整数:");
a=in.nextInt();
System.out.println("请输入第二个非0整数:");
b=in.nextInt();
System.out.println("相除结果="+a/b);
}catch(InputMismatchException e){
System.out.println("请输入整数!");
}catch(ArithmeticException e){
System.out.println("分母不能为0!");
}finally{
System.out.println("总会执行!");
}
}
}