自定义异常类
自定义异常类可分为三步:
1.创建一个类,比如我要创建一个关于体温的异常类,叫做TemperatureException.
2.让自己创建的类继承自一个异常类,如果继承自编译时异常类,那么自定义的异常类就是编译时异常类;如果继承自运行时异常,那么自定义异常类就是运行时异常类。
比如让TemperatureException继承自Exception类,那么TemperatureException就是编译时异常类。
3.自定义异常类中要定义一个构造方法,该构造方法具有一个String类型的形参,并且该方法用super()调用父类的具有一个String类型参数的构造方法
public class CheckTemperature {
private String name;
private double temp;
public CheckTemperature(String name, double temp) {
super();
this.name = name;
this.temp = temp;
}
public double getTemp() {
return temp;
}
public void throwException(double temp) throws TemperatureException{
if (temp<35){
throw new TemperatureException(name+"挂了");
}else if(temp<=37) {
System.out.println(name+"正常温度为"+temp+"度");
}else if(temp<=42) {
System.out.println(name+"发烧到"+temp+"度");
}else if(temp>42) {
throw new TemperatureException(name+"烧着了");
}
}
}
自定义体温异常类
public class TemperatureException extends Exception {
private String message;
public TemperatureException(String message) {
super(message);
this.message = message;
}
//构造器中super()调用父类
// public String getMessage(){
// return message;
// }
}
测试类
public void test() {
CheckTemperature ex1 = new CheckTemperature("某某某名男子1",30);
CheckTemperature ex2 = new CheckTemperature("某某某名男子2",37);
CheckTemperature ex3 = new CheckTemperature("某某某名男子3",39);
CheckTemperature ex4 = new CheckTemperature("某某某名男子4",43);
try{
ex1.throwException(ex1.getTemp());
ex2.throwException(ex2.getTemp());
ex3.throwException(ex3.getTemp());
ex4.throwException(ex4.getTemp());
}catch (TemperatureException TE){
System.out.println("TemperatureException:"+TE.getMessage());
}
}