明留

将何所持,将何所往?此刻惜之!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1.异常类之间的关系图

   2.异常转译:指的就是吧捕获到的原始异常,将其转换为一个新的不同类型的异常,然后再抛出该新异常的过程。

     比如:public void uploadImageFile(String imagePath)  {

              try {/上传图片文件}

      catch(IOException e) {

      //吧原始异常信息记录到日记中(便于排错)

      throw  new 异常构造方法();

     }

    }

  3.异常链:就是把原始的异常的类包装成新的异常类

    比如:自定义了一个新的异常类 public class UploadExceptio extends BaseException {

         public  UploadExceptio (Throwable  tt ){

    }

  }

.......

      try {/上传图片文件}

      catch(IOException e) {

      //吧原始异常信息记录到日记中(便于排错)

      throw  new  UploadExceptio (e);s

     }

4.多样化异常:(java中每次只能抛出一个异常对象,所以这种异常需要自定义。)

  比如:表单验证--------

 

  public class BaseException extends Exception {
  protected Throwable cause = null;
  private List<Throwable> exceptions = new ArrayList<Throwable>();
  public BaseException(String msg, Throwable cause) {
  super(msg);
  this.cause = cause;
 }
 
 public List getException() {
  return exceptions;
 }
 
 public void addException(BaseException ex) {
  exceptions.add(ex);
 }
 public void printStackTrace(PrintWriter writer) {
 super.printStackTrace(writer);
 if(getCause() != null) {
   getCause().printStackTrace(writer);
  }
  writer.flush();
 }
 public static void main(String [] args) {
 BaseException be = new BaseException();
  try {
   checkField1();
  }catch(Field1Exception e) {
   be.addException(e);
  }
  try {
   checkField2();
  }catch(Field2Exception e) {
   be.addException(e);
  }
  if(be.getException().size()>0) throw be;
 }
}

 

posted on 2011-11-28 17:07  明留  阅读(1442)  评论(0编辑  收藏  举报