Java中throws实例用法详解
什么是异常?
在编写 Java 代码的过程中,我们有时候会遇到一些错误,例如访问一个不存在的文件,访问 null 对象,或者调用方法时传入了非法参数等。这些错误被称为异常。
异常在运行时被抛出,程序会尝试去处理这个异常,如果未能处理,则会导致程序中断。Java 中的异常继承自 Java.lang.Throwable 类。
Java中的异常分类
Java 中的异常根据其继承方式分为两种,分别是 checked 异常和 unchecked 异常。checked 异常需要在代码中进行处理,而 unchecked 异常则不需要。
throws 关键字
当某个方法可能抛出一个 checked 异常时,我们需要在方法声明中使用 throws 关键字声明抛出的异常类型,以便其他程序能够通过 try-catch 控制结构,或者使用 throws 声明接口来处理这些异常。
throws 语法格式
modifier returnType methodName(parameterList) throws exceptionType1, exceptionType2, ...exceptionTypeN {
// 方法体
}
在上面的语法格式中,关键字 throws
跟着一个异常列表,该列表中的每一个异常都是用逗号分隔的异常类名。一个方法可以声明抛出多个异常,使用逗号分隔每个异常类名。
throws 实例
假设我们有一个读取文件的方法,声明如下:
public static String readFile(String file) throws FileNotFoundException {
Scanner scanner = new Scanner(new File(file));
StringBuilder sb = new StringBuilder();
while (scanner.hasNextLine()) {
sb.append(scanner.nextLine());
sb.append(System.lineSeparator());
}
return sb.toString();
}
在该方法中,我们可以看到使用了 throws FileNotFoundException
声明,表示该方法可能会抛出这个异常。
此外,我们还可以在调用该方法的地方使用 try-catch 结构来处理异常,例如:
public static void main(String[] args) {
try {
String content = readFile("test.txt");
System.out.println(content);
} catch (FileNotFoundException e) {
System.out.println("File not found.");
e.printStackTrace();
}
}
在上面的代码中,我们捕获了 FileNotFoundException
异常,并在控制台打印异常信息。
throws 示例2
下面再来一个更加具体的例子。我们假设有一个方法用于获取一个数字的倒数,但该方法只能接受大于 0 的数字,如果传入了小于等于 0 的数字,则会抛出一个 checked 异常 IllegalArgumentException
。
public static double getReciprocal(int num) throws IllegalArgumentException {
if (num <= 0) {
throw new IllegalArgumentException("Input must be greater than 0");
}
return 1.0 / num;
}
在上面的代码中,我们可以看到使用了 throws IllegalArgumentException
声明,表示该方法可能会抛出这个异常。
我们可以在调用该方法的地方使用 try-catch 结构来处理异常,例如:
public static void main(String[] args) {
try {
double result = getReciprocal(0);
System.out.println(result);
} catch (IllegalArgumentException e) {
System.out.println("Input must be greater than 0.");
e.printStackTrace();
}
}
在上面的代码中,我们传入了一个小于等于 0 的数字,因此方法会抛出 IllegalArgumentException
异常,我们在 catch 语句中捕获了该异常并打印异常信息。
结论
在 Java 中使用 throws 声明方法可能会抛出的异常,可以使程序更加健壮,并在异常发生时及时处理异常,避免程序崩溃。同时,我们可以通过捕获异常并打印异常信息,快速发现并解决程序中的问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中throws实例用法详解 - Python技术站