-
如果产生一个异常?
//在写一个方法时,由于不能确定调用者传递的参数是否正确,所以在方法内部需要对参数进行有效性的校验
//如果不符合要求,就给调用者产生一个异常。
public static void method(参数) throws 异常类{
if(参数校验){
//产生一个异常
throw new 异常对象(); //如果产生的是编译时异常,就需要在方法上声明
}
//一般API中的方法,在正式执行方法功能代码之前,会做很多有效性的校验(丑话说在前头)
} -
自定义异常?
异常类其实就是描述问题的类,如果API中给你提供的异常类不足以描述的你的问题,你就可以自定义异常类。
如何自定义:
1) 第一步:写一个类继承Exception类或者RuntimeException
ps: 异常的类名要见名知意,最好能够足以说明产生异常的问题原因
2)第二步:写两个构造方法
//自定义异常类
//1.继承Exception或者RuntimeException
//2.写两个构造方法
public class Demo2 {
public static void main(String[] args) {
try {
useMoney(7);
} catch (FalseMonetException e) {
e.printStackTrace();
}finally {//不管异常是否产生,一定会执行
System.err.println("我执行了");//err字体为红色
}
System.out.println("请换人民币");
}
private static void useMoney(int money) throws FalseMonetException {
if(money ==5||money==10){
System.out.println("可以使用");
}else {
throw new FalseMonetException("假币,我报警啦!!!");
}
}
}
class FalseMonetException extends Exception {
public FalseMonetException() {
}
public FalseMonetException(String message) {//传递异常的消息
super(message);
}
}
打印结果:
-------------------------------------------------------------------
com.itheima.FalseMonetException: 假币,我报警啦!!!
at com.itheima.Demo2.useMoney(Demo2.java:22)
at com.itheima.Demo2.main(Demo2.java:9)
我执行了
请换人民币