zoukankan      html  css  js  c++  java
  • Java知多少(50)Java throws子句

    如果一个方法可以导致一个异常但不处理它,它必须指定这种行为以使方法的调用者可以保护它们自己而不发生异常。做到这点你可以在方法声明中包含一个throws子句。一个 throws 子句列举了一个方法可能抛出的所有异常类型。这对于除Error或RuntimeException及它们子类以外类型的所有异常是必要的。一个方法可以抛出的所有其他类型的异常必须在throws子句中声明。如果不这样做,将会导致编译错误。

    下面是包含一个throws子句的方法声明的通用形式:

    1 type method-name(parameter-list) throws exception-list{
    2     // body of method
    3 }

    这里,exception-list是该方法可以抛出的以有逗号分割的异常列表。


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

     1 // This program contains an error and will not compile.
     2 class ThrowsDemo {
     3     static void throwOne() {
     4         System.out.println("Inside throwOne.");
     5         throw new IllegalAccessException("demo");
     6     }
     7     public static void main(String args[]) {
     8         throwOne();
     9     }
    10 }

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

     1 // This is now correct.
     2 class ThrowsDemo {
     3     static void throwOne() throws IllegalAccessException {
     4       System.out.println("Inside throwOne.");
     5       throw new IllegalAccessException("demo");
     6    }
     7    public static void main(String args[]) {
     8       try {
     9          throwOne();
    10       } catch (IllegalAccessException e) {
    11          System.out.println("Caught " + e);
    12       }
    13    }
    14 }

    下面是例题的输出结果:

    1 inside throwOne
    2 caught java.lang.IllegalAccessException: demo
    系列文章:
  • 相关阅读:
    30天敏捷结果(2):用三个故事驱动你的一周
    30天敏捷结果(24):恢复你的精力
    30天敏捷结果(6):周五回顾,找到三件做的好以及三件需要改善的事情
    js 数组循环和迭代
    没有+求和
    js检测数组类型
    redis 在windows 下的安装和使用
    版本控制(一)——初步概念
    苹果树的故事(转发的)
    mongoDB之在windows下的安装
  • 原文地址:https://www.cnblogs.com/Coda/p/4472645.html
Copyright © 2011-2022 走看看