JAVA中 throw 和 throws 的区别含案例
在 Java 中,throw
和 throws
是两个关键字,它们用于处理异常。
throw
关键字用于抛出一个异常对象。一旦抛出异常,程序将停止执行当前方法的剩余代码,并尝试寻找与该异常匹配的 catch
块来处理它。下面是一个 throw
的示例:
javaCopy codepublic void myMethod(int num) {if (num == 0) {throw new IllegalArgumentException("Number cannot be zero");}// rest of the method code
}
在上面的示例中,如果 num
参数的值为 0,则 throw
语句将抛出一个 IllegalArgumentException
异常,并将异常消息设置为 “Number cannot be zero”。
throws
关键字用于声明方法可能抛出的异常类型。在 Java 中,所有的方法都可以抛出异常,但有些异常不需要在方法内部处理,可以将异常交给上层调用者处理。throws
关键字就是用来声明方法可能会抛出的异常类型,以便上层调用者能够适当地处理它们。下面是一个 throws
的示例:
javaCopy codepublic void myMethod() throws IOException {// method code that could throw an IOException
}
在上面的示例中,myMethod
方法声明可能抛出 IOException
异常。这告诉上层调用者可能需要处理该异常,以防止程序崩溃。
需要注意的是,throw
和 throws
关键字的作用是不同的,throw
用于抛出异常,而 throws
用于声明可能抛出的异常类型。
下面是一个示例程序,演示了 throw
和 throws
关键字的使用:
javaCopy codepublic class ExceptionExample {public void myMethod(int num) throws IllegalArgumentException {if (num == 0) {throw new IllegalArgumentException("Number cannot be zero");}// rest of the method code}public static void main(String[] args) {ExceptionExample ex = new ExceptionExample();try {ex.myMethod(0);} catch (IllegalArgumentException e) {System.out.println("Caught exception: " + e.getMessage());}}
}
在上面的示例中,myMethod
方法声明可能抛出 IllegalArgumentException
异常,如果 num
参数的值为 0,则会抛出该异常。在 main
方法中,我们创建了 ExceptionExample
对象并调用 myMethod
方法,然后在 catch
块中捕获并处理 IllegalArgumentException
异常。如果 myMethod
方法成功运行,则不会抛出异常,程序将正常退出。如果抛出异常,则在 catch
块中处理它。