详细介绍Java关键字 throw, throws, Throwable 的用法与区别
在Java程序中,异常处理是必不可少的一部分。Java中的异常是指程序在执行过程中发生错误或异常情况时,根据不同的情况产生不同的异常信息。Java中有三个关键字:throw, throws, Throwable,它们是处理Java异常的重要工具。
throw关键字
throw
关键字是Java的一个关键字,用于在代码中手动抛出一个异常。 throw
后面必须跟随一个 Throwable
对象。Throwable
是用来表示Java中所有的异常的根类,它有两个子类:Error
和 Exception
。
下面是一个简单的示例,我们手动抛出一个 Exception
异常:
public void checkAge(int age) throws Exception {
if (age < 18) {
throw new Exception("未成年人禁止进入");
}
System.out.println("欢迎光临");
}
在上面的代码中,如果传入的年龄小于18岁,则会抛出一个 Exception
异常,并输出提示信息;否则,输出“欢迎光临”。
throws关键字
throws
关键字使用在方法签名中,用于声明这个方法可能会抛出哪些异常。如果在程序中调用这个方法,那么就必须对这些异常进行处理或者再次抛出。
下面是一个示例,User
类中的 setAge
方法使用了 throws
:
public void setAge(int age) throws Exception {
if (age < 0 || age > 150) {
throw new Exception("年龄输入有误");
}
this.age = age;
}
在上面的代码中,如果一个 User
实例的年龄在0到150之外,那么 setAge
方法会抛出一个 Exception
异常。
Throwable类
Throwable
是所有Java异常的父类。它有两个直接子类:Error
和 Exception
。Error
表示程序本身无法继续执行的问题,通常是出现了严重的系统问题,如内存不足等;Exception
表示可以被 Java 程序处理的异常情况。
区别
-
throw
关键字用于手动抛出一个异常。 -
throws
关键字用于方法签名中,用来标识方法可能会抛出哪些异常。 -
Throwable
是所有 Java 异常的根类,它有两个子类:Error
和Exception
。
示例说明
示例1使用了 throw 关键字,手动抛出了一个自定义异常:
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
public void checkAge(int age) throws CustomException {
if (age < 18) {
throw new CustomException("未成年人禁止进入");
}
System.out.println("欢迎光临");
}
在 checkAge 方法中,如果传入的年龄小于18岁,则会抛出一个自定义异常 CustomException,并输出提示信息;否则,输出“欢迎光临”。
示例2使用了 throws 关键字,声明可能会抛出 IOException:
public void readFile(String fileName) throws IOException{
FileReader reader = new FileReader(fileName);
char[] buffer = new char[1024];
int length;
while ((length = reader.read(buffer)) != -1) {
System.out.println(buffer);
}
reader.close();
}
在 readFile 方法中,如果出现任何读取文件的异常,就会抛出一个 IOException 异常,并由上级方法捕获并处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详细介绍Java关键字throw throws Throwable的用法与区别 - Python技术站