程序中的异常处理 篇
一.java异常分为:
(1)Error: 错误
一般指的是重大错误,这种错误程序员处理不了
如: 虚拟机错误 (jvm machine Error ....)
(2)Exception:
运行时异常:
指的是在编译阶段正常通过,运行时才
才有可能产生的异常.
RuntimeException: 父异常
二.常见异常有:
1) AirthmeticException: 算术运算异常 (by zero)
2) NullPointerException: 空指针异常
3) ClassCastException: 类转换异常
4) IndexOutOfBoundsException:数组下标越界异常
ArrayIndexOutOfBoundsException 数组
StringIndexOutOfBoundsException 字符
5) NumberFormatException: 数字格式转换异常
6)ClassNotFoundException 指定的类不存在
7)IOException 输入输出异常
8)FileNoFoundException 找不到文件异常
三.异常处理方法有哪些:
第一种: 抛出异常 throws 异常类(子类|父类)
第二种:人为抛出异常
第三种: 捕获异常 try..catch..finally
第四种: 自定义异常
注: 第一种: 抛出异常: 又叫"回避异常",指的是产生异常时,交给上一级处理,最终,都会交给jvm,jvm的处
理方式:直接在控制台报错,提示异常类型以及引起行数等信息.
第二种:人为抛出异常
eg:
public int div (int a, int b ) {
if( b==0 ){
throw new
ArithemicException("除数不能为0");;
}
}
第三种: 捕获异常 try..catch..finally
public void p(int x){
try{
...
}catch(Exception e){
...
}finally{
...
}
}
第四种: 自定义异常
创建Exception或者RuntimeException的子类即可得到一个自定义的异常类。
例如:
public class MyException extends Exception{
public MyException(){}
public MyException(String smg){
super(smg);
}
}
四:Java异常处理的原则和技巧
1、避免过大的try块,不要把不会出现异常的代码放到try块里面,尽量保持一个try块对应一个或多个异常。
2、细化异常的类型,不要不管什么类型的异常都写成Excetpion。
3、catch块尽量保持一个块捕获一类异常,不要忽略捕获的异常,捕获到后要么处理,要么转译,要么重新抛出新类型的异常。
4、不要把自己能处理的异常抛给别人。
5、不要用try...catch参与控制程序流程,异常控制的根本目的是处理程序的非正常情况。
一.java异常分为:
(1)Error: 错误
一般指的是重大错误,这种错误程序员处理不了
如: 虚拟机错误 (jvm machine Error ....)
(2)Exception:
运行时异常:
指的是在编译阶段正常通过,运行时才
才有可能产生的异常.
RuntimeException: 父异常
二.常见异常有:
1) AirthmeticException: 算术运算异常 (by zero)
2) NullPointerException: 空指针异常
3) ClassCastException: 类转换异常
4) IndexOutOfBoundsException:数组下标越界异常
ArrayIndexOutOfBoundsException 数组
StringIndexOutOfBoundsException 字符
5) NumberFormatException: 数字格式转换异常
6)ClassNotFoundException 指定的类不存在
7)IOException 输入输出异常
8)FileNoFoundException 找不到文件异常
三.异常处理方法有哪些:
第一种: 抛出异常 throws 异常类(子类|父类)
第二种:人为抛出异常
第三种: 捕获异常 try..catch..finally
第四种: 自定义异常
注: 第一种: 抛出异常: 又叫"回避异常",指的是产生异常时,交给上一级处理,最终,都会交给jvm,jvm的处
理方式:直接在控制台报错,提示异常类型以及引起行数等信息.
第二种:人为抛出异常
eg:
public int div (int a, int b ) {
if( b==0 ){
throw new
ArithemicException("除数不能为0");;
}
}
第三种: 捕获异常 try..catch..finally
public void p(int x){
try{
...
}catch(Exception e){
...
}finally{
...
}
}
第四种: 自定义异常
创建Exception或者RuntimeException的子类即可得到一个自定义的异常类。
例如:
public class MyException extends Exception{
public MyException(){}
public MyException(String smg){
super(smg);
}
}
四:Java异常处理的原则和技巧
1、避免过大的try块,不要把不会出现异常的代码放到try块里面,尽量保持一个try块对应一个或多个异常。
2、细化异常的类型,不要不管什么类型的异常都写成Excetpion。
3、catch块尽量保持一个块捕获一类异常,不要忽略捕获的异常,捕获到后要么处理,要么转译,要么重新抛出新类型的异常。
4、不要把自己能处理的异常抛给别人。
5、不要用try...catch参与控制程序流程,异常控制的根本目的是处理程序的非正常情况。