Java throw关键字的作用是什么?

  • Post category:Java

Java中的throw关键字用于手动抛出异常。在程序执行过程中,如果遇到了某些无法处理的情况,就可以使用throw关键字抛出一个异常,让调用者或者JVM处理。

使用throw关键字抛出异常的基本语法如下所示:

throw new Exception("异常信息");

其中,new引起了一个异常对象,Exception则是所要抛出的异常类型。异常信息则是要说明异常发生的具体原因。

throw关键字的主要作用是将异常传递到调用栈中的上一级别。调用栈中的方法执行路径被终止,栈跟踪则被传递到调用栈中的上一级。如果调用栈中没有能够处理异常的代码,则JVM会捕获它并输出异常信息。

以下是两个例子,用于说明throw关键字的作用:

  1. 在一个方法中处理异常
public class ExceptionDemo{
    public void divide(int a, int b) throws ArithmeticException {
        if(b == 0){
            throw new ArithmeticException("除数不能为0!");
        }else{
            System.out.println("a / b = "+(a/b));
        }
    }

    public static void main(String[] args){
        ExceptionDemo demo = new ExceptionDemo();
        try{
            demo.divide(10,0);
        }catch(ArithmeticException e){
            System.out.println(e.getMessage());
        }
    }
}

运行结果为:

除数不能为0!

在上面的代码中,divide方法中判断了b是否为0,如果是的话就抛出一个ArithmeticException异常。在main方法中,我们使用try…catch语句块来捕获这个异常,并输出它的错误信息。

  1. 抛出自定义异常
public class ExceptionDemo {
    public static void main(String[] args) throws AgeException {
        int age = 17;
        if(age < 18){
            throw new AgeException("未成年人不允许进入!");
        }else{
            System.out.println("欢迎光临!");
        }
    }
}

class AgeException extends Exception{
    public AgeException(String message) {
        super(message);
    }
}

运行结果为:

Exception in thread "main" AgeException: 未成年人不允许进入!
    at ExceptionDemo.main(ExceptionDemo.java:5  )

在这个例子中,我们创建了一个自定义的异常类AgeException,并在main方法中根据年龄的大小决定是否抛出该异常。如果年龄小于18岁,则会抛出AgeException异常。在上述代码中,我们使用了throws关键字来声明AgeException可以被调用者捕获并处理。当程序运行时,JVM捕获到了这个异常,并输出它的错误信息。

综上,throw关键字可以强制抛出一个异常,用于应对一些不可预见的程序异常情况,可以让代码更加健壮和清晰。