异常对象可以抛出异常, 操作方法如下:
String getMessage();
String toString();
String printStackTrace();
什么可以抛出?
任何继承了 Throwable 类的对象
Exception 类继承了 Throwable
throw new Exception();
throw new Exception("HELP");
异常声明遇到继承关系
当覆盖一个函数的时候, 子类不能声明抛出比父类的版本更多的异常
在子类的构造函数中,必须声明父类可能抛出的全部异常
package test;
class OpenException extends Exception{}
class CloseException extends OpenException{}
class NewException extends Exception{}
class Test {
public Test() throws OpenException {}
public void f() throws OpenException{}
public static void main(String[] args) {
}
}
public class Hello extends Test{
// 子类的构造函数可以比父类有更多的异常
public Hello() throws OpenException, NewException {
}
// 子类覆盖父类,成员函数不允许比子类抛出更多种类的异常
public void f() throws OpenException{}
public static void main(String[] args) {
try {
// 将子类对象当作父类对象看待
Test t = new Hello();
t.f();
} catch (OpenException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}catch (NewException e2) {
e2.printStackTrace();
}
}
}