java 异常

异常对象可以抛出异常, 操作方法如下:

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();
		}
	}
}