一、
java中的异常事件:
----java.lang.Throwable
1.---- -Error:错误,程序中不进行处理;
2.----- Exception:异常,在编写程序时须进行处理;
2.1 Exception分为:
2.1.1 编译时异常:必须进行处理;
2.1.2 运行时异常:无需进行显示的处理,遇到时系统会报错;
常见的运行时异常: 数组下标越界 (ArrayIndexOutOfBoundsException)
空指针异常 (NullPointerException)
类型转换 (ClassCaseException)
算数异常 (ArithmeticException)
3.java中异常处理机制:
--抓抛模型--
"抛":当程序运行时,一旦出现异常,就会在异常的代码处生成一个对应的异常类型的对象,并将该对象抛出;
>--自动抛出
>--手动抛出 :throw + 异常类的对象(声明在方法的内部)eg:throw new Exception("您输入的信息有误!");
>--当程序在执行时遇到异常时,程序会终止执行,(违背处理之前)之后的语句不会将被执行;
>--此异常类的对象抛给方法的调用者;
"抓":抓住被抛出的异常类的对象;抓--即为 异常的处理;
3.1 异常的处理方式一:
try{
//可能发生异常的语句;
}catch(){
//处理的方式一;
}catch(){
//处理的方式二;
}finally{
//一定会执行的语句;
}
注: 1.try中定义的变量是局部变量;
2.finally语句是可选的;
3.catch语句中是对异常的处理:
通常会调用两种方法:getMessage()-->
printStack()-->打印堆栈信息,默认异常对象调用方法;
4.catch 语句可以有多个,try语句中抛出的异常会和catch语句中的异常类相匹配,一旦满足,则执行catch语句,
执行完之后就会跳出catch语句,如果catch语句之后有finally语句,则执行finally语句,若没有则继续执行之后的代码;
5.finally 中存放的是一定会被执行的语句,不管try中、catch中是否仍有异常未被处理以及是否有return 语句,都会执行;
6.try-catch语句是可以嵌套的;
3.2 异常处理方式二:
在方法的声明处,显示的抛出该异常对象的类型;
eg:
public static void method1() throws IOException{
//方法体;
}
简介:在方法的内部出现异常时,就会抛出一个异常类的对象,抛给方法的调用者,且异常的对象逐层向上抛出直至main方法,在上抛的过程中可以进行try-catch进行处理;
一般抛至main方法中进行处理;
----java.lang.Throwable
1.---- -Error:错误,程序中不进行处理;
2.----- Exception:异常,在编写程序时须进行处理;
2.1 Exception分为:
2.1.1 编译时异常:必须进行处理;
2.1.2 运行时异常:无需进行显示的处理,遇到时系统会报错;
常见的运行时异常: 数组下标越界 (ArrayIndexOutOfBoundsException)
空指针异常 (NullPointerException)
类型转换 (ClassCaseException)
算数异常 (ArithmeticException)
3.java中异常处理机制:
--抓抛模型--
"抛":当程序运行时,一旦出现异常,就会在异常的代码处生成一个对应的异常类型的对象,并将该对象抛出;
>--自动抛出
>--手动抛出 :throw + 异常类的对象(声明在方法的内部)eg:throw new Exception("您输入的信息有误!");
>--当程序在执行时遇到异常时,程序会终止执行,(违背处理之前)之后的语句不会将被执行;
>--此异常类的对象抛给方法的调用者;
"抓":抓住被抛出的异常类的对象;抓--即为 异常的处理;
3.1 异常的处理方式一:
try{
//可能发生异常的语句;
}catch(){
//处理的方式一;
}catch(){
//处理的方式二;
}finally{
//一定会执行的语句;
}
注: 1.try中定义的变量是局部变量;
2.finally语句是可选的;
3.catch语句中是对异常的处理:
通常会调用两种方法:getMessage()-->
printStack()-->打印堆栈信息,默认异常对象调用方法;
4.catch 语句可以有多个,try语句中抛出的异常会和catch语句中的异常类相匹配,一旦满足,则执行catch语句,
执行完之后就会跳出catch语句,如果catch语句之后有finally语句,则执行finally语句,若没有则继续执行之后的代码;
5.finally 中存放的是一定会被执行的语句,不管try中、catch中是否仍有异常未被处理以及是否有return 语句,都会执行;
6.try-catch语句是可以嵌套的;
3.2 异常处理方式二:
在方法的声明处,显示的抛出该异常对象的类型;
eg:
public static void method1() throws IOException{
//方法体;
}
简介:在方法的内部出现异常时,就会抛出一个异常类的对象,抛给方法的调用者,且异常的对象逐层向上抛出直至main方法,在上抛的过程中可以进行try-catch进行处理;
一般抛至main方法中进行处理;