欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java throws 字句

程序员文章站 2022-07-14 10:43:52
...

使用throws声明抛出异常的思路是,当前方法不知道如何处理这种类型的异常,该异 常应该由上级调用者处理;如果main方法也不知道如何处理这种类型的异常,也可以 使用throws声明抛出异常,该异常将交给JVM处理。JVM对异常的处理方法是,打印 异常的跟踪栈信息,并中止程序运行。
throws声明抛出异常的格式:
throws 异常A; 异常B; 异常C…

下面是一个不正确的例子。该例试图抛出一个它不能捕获的异常。因为程序没有指定一个throws子句来声明这一事实,程序将不会编译。

// This program contains an error and will not compile.
class ThrowsDemo {
static void throwOne() {
    System.out.println("Inside throwOne.");
    throw new IllegalAccessException("demo");
}
public static void main(String args[]) {
    throwOne();
}
}

为编译该程序,需要改变两个地方。第一,需要声明throwOne( )引发IllegalAccess Exception异常。第二,main( )必须定义一个try/catch 语句来捕获该异常。正确的例子如下:

// This is now correct.
class ThrowsDemo {
static void throwOne() throws IllegalAccessException {
  System.out.println("Inside throwOne.");
  throw new IllegalAccessException("demo");
}
 public static void main(String args[]) {
  try {
     throwOne();
  } catch (IllegalAccessException e) {
     System.out.println("Caught " + e);
  }
}
}

下面是例题的输出结果:
inside throwOne
caught java.lang.IllegalAccessException: demo