首先自定义异常类需要继承java自身的异常类,以下列代码举例
public class myException extends Exception{
private String command;
public myException(){
super();
}
public myException(String command){
super(command);
this.command=command;
}
public String getCommand(){
return command;
}
}
该自定义异常类继承了Exception这个java自带的异常类,自定义异常类基本只有一个字符串变量用来传递异常信息,在有参和无参构造中会通过super关键词,调用父类构造方法。
异常类分为两种运行时异常类(非受控异常),编译时异常类(受控异常),以代码举例
public class myException extends RuntimeException{
private String command;
public myException(){
super();
}
public myException(String command){
super(command);
this.command=command;
}
}
该自定义异常类继承RuntimeException是运行时异常,若继承Exception是编译时异常,运行时异常和编译时异常的区别在于异常发生的概率,运行时异常发生概率低,而编译时异常发生概率高,所以运行时异常可以不控制,而编译时异常必须受控制,所以也叫受控异常。
虽然二者名称不同但都在运行代码出现异常时才会,提示异常信息,在出现异常时若代码中没有解决方案,则会中止代码运行。