java自定义异常和throw、throws的使用
一、自定义异常类
我们知道所有的异常都是Exception,所以我们需要自定义异常只需要继承那个Exception类就可以了。下面我们自定义一个异常类,代码如下:
/** * 自定义异常, */ //继承 Exception public class MyException extends Exception{ public MyException(String message){ //出现异常打印的语句 super(message); } }
二、设计方法,抛出异常
下面我们可以设计一个方法,抛出异常,代码如下:
public class Student { //显示抛出异常 ,可以同时抛出多个, //那么,调用此方法的就必须捕获此异常或者继续抛出 public void stu(int age) throws MyException,ArithmeticException{ if(age<18){ throw new MyException("靓仔,你年龄不够"); } System.out.println("欢迎,报名!"); } }
注意抛出异常的格式是在方法后面使用throws关键字,可以抛出多个异常使用英文逗号隔开即可。在程序里面我们要求年龄必须是大于18,否则就显示的抛出异常,在这里使用的关键字是throw。抛出我们刚才新建的异常类对象。
三、测试方法
我们在main方法中调用这个方法。由于我们设计的这个方法抛出了异常。所有我们在调用的时候编译器要求我们必须处理异常。我们有两种处理方法
1、使用try...catch...捕获异常
由于方法抛出了两个异常所以我们两个都需要捕获。代码如下:
public class Run { public static void main(String[] args) { Student student = new Student(); try { student.stu(18); } catch (ArithmeticException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MyException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
2、在调用的方法使用throws继续抛出异常。
我们也需要抛出两个异常。代码如下: public class Run { public static void main(String[] args) throws ArithmeticException, MyException { Student student = new Student(); student.stu(18); } }