受控与不受控的异常
1.throws语句中声明的异常称为受控(checked)的异常,通常直接派生自Exception类。
2.RuntimeException(其基类为Exception) 和Error(基类为Throwable)称为非受控的异常。这种异常不用在throws语句中声明。
throws 语句
1.throws语句表明某方法中可能出现某种(或多种)异常,但它自己不能处理这些异常,而需要由调用者来处理。
2.当一个方法包含throws子句时,需要在调用此方法的代码中使用try/catch/finally进行捕获,或者是重新对其进行声明,否则编译时报错。
示例程序
1 import java.io.*; 2 public class ThrowMultiExceptionsDemo { 3 public static void main(String[] args) 4 { 5 try { 6 throwsTest(); 7 } 8 catch(IOException e) { 9 System.out.println("捕捉异常"); 10 } 11 } 12 13 private static void throwsTest() throws ArithmeticException,IOException { 14 System.out.println("这只是一个测试"); 15 // 程序处理过程假设发生异常 16 throw new IOException(); 17 //throw new ArithmeticException(); 18 } 19 }
结果截图
注:
一个方法可以声明抛出多个异常,例如 int g(float h) throws OneException,TwoException { …… }
当一个方法声明抛出多个异常时,在此方法调用语句处只要catch其中任何一个异常,代码就可以顺利编译。