学习打卡1

以下是今天学习的异常处理,附上视频源码。对于自己不理解的地方要反复看,跟着敲,只有多敲才会熟练。

package exception;

class OpenException extends Exception{}
//任何继承了Throwable类的对象可以被抛出,Exception是Throwable类的子类

class CloseException extends OpenException{}

public class ArrayIndex {
	public static void f() throws OpenException{
	}
	public static int open() {
		return -1;
	}
	public static void readFile() throws OpenException,CloseException{//如果你自定义函数抛出异常,需在函数头部加以声明
		if(open() == -1)
			throw  new CloseException();
	}
      public static void main(String[] args) {
    	  try {
    		  readFile();
    	  }catch(OpenException e) {
    		  e.printStackTrace();
    		  System.out.println("Open");
    	  }//抛出子类异常会被捕捉父类异常的catch捕捉到
    	  //catch(CloseException e) {
    		  //e.printStackTrace();
    		 // System.out.println("Close");此时,子类的异常已被捕捉,所以该catch不会执行
    	  }
    	  }
     
//当覆盖一个函数的时候,子类不能声明抛出比父类版本更多的异常      在子类构造函数中,必须声明父类可能抛出的全部异常`````
原文地址:https://www.cnblogs.com/susususu/p/10704541.html