一、概念:
Throwable------------->异常体系中的超类(父类)
1、异常:(Exception)程序出现问题,程序员所不能控制的。
常见几种异常有:
(1)NullPointerException
(2)ArrayIndexOutOfBoundsException
(3)ArithmeticException (算数异常)
(4)ClassCastException (类型转换异常)
(5)IllegalArgumentException (非法越界异常)
(6)FillNotFoundException
异常分为两大类
一、运行时异常 RutntimeException
二、编译时异常 (程序在编译过程中必须强制检测的异常)
package huaxin;
import javax.swing.JFrame;
public class ExceptionTest {
public static void main(String[] args){
int[] array = new int[10];
System.out.println(array[10]);
System.out.println(11/0);
Object obj = new String("aaa");
int i = (int)obj;
new JFrame().setDefaultCloseOperation(100);
}
}
.........
错误:(Error)程序出现严重的问题,程序员设计不当导致的
常见的几种错误有:
(1)StackOverflowError
(2)OutOfmeMoryError
异常的处理
1、throws 异常
(1)写在方法的小括号后面;
(2)每次抛出的异常都有比前一次抛出异常的范围要> =;
2、try catch
//try catch 为两个单独的区域
try{
//试着执行try块中的代码,如果出现异常,进入catch块中
FileOutputStream fos = new FileOutputStream("z://first.txt");
//后续代码(出现异常则不会执行)
}catch(FileNotFoundException e){
//打印异常栈中的信息(方便程序员阅读)
e.printStackTrace();
//出现这个异常时,具体的解决办法
System.out.println("在我的电脑上找不到此路径");
}finally{//最终(不管try catch 的执行与否,最终都会进入finally块)
//执行关闭资源(流或数据库连接)的操作
System.out.println("-----------finally--------");
}
}
public void study(){
study();
}
Java程序处理异常的格式如下:
try{
//可能出现异常的代码部分
}catch(异常类型异常变量){
//执行异常操作
}catch(异常类型异常变量){
//执行异常操作
}…
finally{
//处理完try与catch操作后的收尾操作,异常统一出口
}
异常处理机制:
1.catch定义,由上到下,异常范围必须由小到大或者同级别的
2.运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配。
3.非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。
throw 和throws关键字
运行时异常,在程序中捕捉并throw后,方法中不一定要声明throws,而非运行时异常,在代码快中throw后,必须在方法中声明throws抛出异常