Java违例控制(二)

2014-11-23 20:14:35 · 作者: · 浏览: 21
n类衍生出来的违例外,你必须在程序中控制(handle)或者声明(declare)所有可能被掷出的违例,也就是所有的检查违例都必须得到处理,否则编译器就会对你亮起红灯,拒绝编译。

捕获违例
选择捕获违例意味着你的程序中必须存在有catch程序块,而且参数ExceptionType的类型必须是被掷出违例的类型,或者是其某一继承链中的超类(supperclass)(6)。

声明违例
如果在方法中会产生检查违例,但你又未在此方法中提供此违例的违例控制,那么你就必须声明此方法可能会掷出某特定违例,利用关键字throws就可以达到此目的。语法结构为(只列出方法的签名signature部分):

methodName(paramType param) throws ExceptionType

到底方法中会掷出哪些违例呢?

它包括你的方法中本身代码掷出的违例,你调用的方法掷出的违例,甚至还包括你调用的方法中调用的其他方法掷出的违例,等等。总之,只要控制流还在你的方法范围内,所有掷出的违例都是你必须考虑的。

实例代码

/**

*

Title:Except1.java



*

Description: Tested using JDK1.4.0 under Win2000 Professional



* @author Mac

* @version 2002/9/9

*/
import java.lang.Thread;
class Except1
{
public static void main(String[] args)
{
Except1 obj = new Except1();
try
{ //begin try block
obj.myMethod();
}
catch(InterruptedException e)
{
System.err.println(“Handle exception here”);
} //end catch block
} //end main

void myMethod() throws InterruptedException
{
Thread.currentThread().sleep(1000);
} //end myMethod
} //end class Except1

在上面这个例子中,我们看到myMethod方法只是简单地声明自己会产生一个名为InterruptedException的违例(throws InterruptedException