疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java异常链信息捕捉


 

  java异常链

  最近工作中,发现若父类中,若某方法抛出异常后,其子类中重写的该方法可以不进行异常处理;但若父类的方法中无异常处理,则其子类中均不能进行异常的抛出处理。

  public abstract class ExceptionFather {

  public void read(int a)throws Exception{

  }

  public void write(){

  System.out.println("write父类输出");//此句不会输出

  }

  //此方法只打印输出众中异常信息中的第一个异常。

  public void render(Exception e){

  System.out.println("==============");

  System.out.println(e.getMessage());

  System.out.println("==============");

  }

  }

  //子类

  public class SunException extends ExceptionFather {

  public void read(int a){

  try{

  this.lookBook();

  int m = 10/a;

  }catch(Exception e){

  this.render(e);//此处调用父类中的异常捕捉方法。

  //此方法用于输出read()所有的异常。

  for(int i=0;i

  System.out.println(e.getStackTrace()[i]);

  }

  e.printStackTrace();//输出所有异常信息

  }

  }

  public void write(int a ){

  System.out.println("write子类输出");

  }

  public String lookBook(){

  String s = null;

  return s.toLowerCase();

  }

  public static void main(String args[])throws Exception{

  SunException sun = new SunException();

  sun.read(0);

  sun.write(12);

  }

  }