java异常
2016-08-25 18:48
375 查看
一、所有异常的父类是Throwable,主要有两个子类:
1.Error:代表系统级别的错误,在程序中一般不予处理;
2.Exception:应用级别的错误,处理方案包括抛出和捕获两种。
3.检查异常和非检查异常
1·检查异常(CheckedException):除了Error和RuntimeException及其子类之外,如:ClassNotFoundException,IOException,开发时必须处理;
2·非检查异常(UnCheckedException):包括Error与RuntimeException及其子类,如OutOfMemoryError,IndexOutOfBoundsException,NullPointerException。开发时可 以不处理,但为了健壮性建议处理。
二、异常处理
1.继续抛出
1·方法内部抛出(throw new 异常对象)
例如:throw new NullPointerException();
2·方法声明抛出(throws 异常类型)
例如:public void doSth() throws Exception{}
说明:当方法内部抛出了一个检查异常时,方法的声明位置必须也要抛出此检查异常或者此检查异常的父类。
2.执行捕获
try{可能出现异常的代码}
catch(异常类型 变量){异常的处理}
finally{异常处理完后最终执行的处理,就算catch块中有return语句,finally块也会执行}
说明:一个try可以对应多个catch代码块,假如try代码块内容不需要处理,可以没有catch块
三、自定义异常
自定义异常类时,通常继承Exception或其子类,也可继承Throwable。
格式:public class 类名称 extends Exception{}
例如:public class UserNotFoundException extends Exception{
public UserNotFoundException(){
super();
}
public UserNotFoundException(String msg){
super(msg);
}
}
public void f1() throws UserNotFoundException{
if(条件不满足){
throw new UserNotFoundException("用户不存在");
}
}
public void f1() throws UserNotFoundException{
try{
//业务代码
}
catch(Exception e){
throw new UserNotFoundException("用户不存在");
}
}
1.Error:代表系统级别的错误,在程序中一般不予处理;
2.Exception:应用级别的错误,处理方案包括抛出和捕获两种。
3.检查异常和非检查异常
1·检查异常(CheckedException):除了Error和RuntimeException及其子类之外,如:ClassNotFoundException,IOException,开发时必须处理;
2·非检查异常(UnCheckedException):包括Error与RuntimeException及其子类,如OutOfMemoryError,IndexOutOfBoundsException,NullPointerException。开发时可 以不处理,但为了健壮性建议处理。
二、异常处理
1.继续抛出
1·方法内部抛出(throw new 异常对象)
例如:throw new NullPointerException();
2·方法声明抛出(throws 异常类型)
例如:public void doSth() throws Exception{}
说明:当方法内部抛出了一个检查异常时,方法的声明位置必须也要抛出此检查异常或者此检查异常的父类。
2.执行捕获
try{可能出现异常的代码}
catch(异常类型 变量){异常的处理}
finally{异常处理完后最终执行的处理,就算catch块中有return语句,finally块也会执行}
说明:一个try可以对应多个catch代码块,假如try代码块内容不需要处理,可以没有catch块
三、自定义异常
自定义异常类时,通常继承Exception或其子类,也可继承Throwable。
格式:public class 类名称 extends Exception{}
例如:public class UserNotFoundException extends Exception{
public UserNotFoundException(){
super();
}
public UserNotFoundException(String msg){
super(msg);
}
}
public void f1() throws UserNotFoundException{
if(条件不满足){
throw new UserNotFoundException("用户不存在");
}
}
public void f1() throws UserNotFoundException{
try{
//业务代码
}
catch(Exception e){
throw new UserNotFoundException("用户不存在");
}
}