Java throws的用法(附带实例)
在一个方法中如果产生了异常,可以选择使用 try-catch-finally 处理。但是有些情况下,一个方法并不需要处理它所产生的异常,或者不知道该如何处理,这时可以选择向上传递异常,由调用它的方法来处理这些异常。这种传递可以逐层向上传递,直到 main() 方法,这就需要使用 throws 子句声明异常。
throws 子句包含在方法的声明中,其格式如下:
【实例】使用 throws 子句声明异常。
需要注意,如果一个方法抛出了异常,那么调用该方法的代码必须处理该异常,否则编译器会报错。如果调用该方法的代码也不打算处理该异常,那么它可以选择继续向上抛出该异常。
throws 子句包含在方法的声明中,其格式如下:
returnType methodName([paramlist]) throws ExceptionList其中,在 ExceptionList 中可以声明多个异常,用逗号分隔。Java 要求方法捕获所有可能出现的非运行时异常,或者在方法定义中通过 throws 子句交给调用它的方法进行处理。
【实例】使用 throws 子句声明异常。
import java.io.*; public class ThrowsDemo { // 声明 ArithmeticException 异常,如果本方法内产生了此异常,则向上抛出 public static int divide(int a, int b) throws ArithmeticException { return a / b; } public static void main(String[] args) { try { int result = divide(10, 0); System.out.println("The result is " + result); } catch (ArithmeticException e) { System.out.println("An exception occurred: " + e.getMessage()); } } }程序执行结果为:
An exception occurred:/ by zero
在上面的示例中,divide() 方法声明它可能会抛出 ArithmeticException 异常。在 main() 方法中,使用 try-catch 块来调用 divide() 方法并捕获异常。如果发生异常,则打印异常消息。需要注意,如果一个方法抛出了异常,那么调用该方法的代码必须处理该异常,否则编译器会报错。如果调用该方法的代码也不打算处理该异常,那么它可以选择继续向上抛出该异常。