Java中的throw关键字用于手动抛出异常。在程序执行过程中,如果遇到了某些无法处理的情况,就可以使用throw关键字抛出一个异常,让调用者或者JVM处理。
使用throw关键字抛出异常的基本语法如下所示:
throw new Exception("异常信息");
其中,new引起了一个异常对象,Exception则是所要抛出的异常类型。异常信息则是要说明异常发生的具体原因。
throw关键字的主要作用是将异常传递到调用栈中的上一级别。调用栈中的方法执行路径被终止,栈跟踪则被传递到调用栈中的上一级。如果调用栈中没有能够处理异常的代码,则JVM会捕获它并输出异常信息。
以下是两个例子,用于说明throw关键字的作用:
- 在一个方法中处理异常
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语句块来捕获这个异常,并输出它的错误信息。
- 抛出自定义异常
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关键字可以强制抛出一个异常,用于应对一些不可预见的程序异常情况,可以让代码更加健壮和清晰。