java入门教程-6.8Java throws子句
来源:互联网 发布:php学生管理系统 编辑:程序博客网 时间:2024/05/17 05:07
如果一个方法可以导致一个异常但不处理它,它必须指定这种行为以使方法的调用者可以保护它们自己而不发生异常。做到这点你可以在方法声明中包含一个throws子句。一个 throws 子句列举了一个方法可能抛出的所有异常类型。这对于除Error或RuntimeException及它们子类以外类型的所有异常是必要的。一个方法可以抛出的所有其他类型的异常必须在throws子句中声明。如果不这样做,将会导致编译错误。
下面是包含一个throws子句的方法声明的通用形式:
type method-name(parameter-list) throws exception-list{
// body of method
}
这里,exception-list是该方法可以抛出的以有逗号分割的异常列表。
下面是一个不正确的例子。该例试图抛出一个它不能捕获的异常。因为程序没有指定一个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
下面是包含一个throws子句的方法声明的通用形式:
type method-name(parameter-list) throws exception-list{
// body of method
}
这里,exception-list是该方法可以抛出的以有逗号分割的异常列表。
下面是一个不正确的例子。该例试图抛出一个它不能捕获的异常。因为程序没有指定一个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
0 0
- java入门教程-6.8Java throws子句
- JAVA throws
- java中throws子句是怎么用的?工作原理是什么?
- java当中throws子句在继承当中overrride时有什么规则?
- Java Gossip: throw、throws
- Java exception and throws
- JNI throws java exception
- java throws处理
- java throws 用法
- JAVA throws规则
- java throws exception
- Java:throw与throws
- Java throws and throw
- throws关键字--java
- Java----throw与throws
- java中throws关键字
- 73、java异常-throws
- Java----switch case子句
- java入门教程-6.3Java未被捕获的异常
- java入门教程-6.4Java try和catch的使用
- java入门教程-6.5Java 多重catch语句的使用
- java入门教程-6.6Java try语句的嵌套
- java入门教程-6.7Java throw:异常的抛出
- java入门教程-6.8Java throws子句
- java入门教程-6.9Java finally
- java入门教程-6.10Java的内置异常
- java入门教程-6.11使用Java创建自己的异常子类
- java入门教程-6.12Java断言
- java入门教程-7.1Java线程的概念
- java入门教程-7.2Java线程模型
- java入门教程-7.3Java主线程
- java入门教程-7.4Java创建线程(Runnable接口和Thread类)