Java学习之路(二)有关异常转译和异常链

本文深入探讨了异常类之间的关系、异常转译、异常链和多样化异常的概念及应用,通过实例展示了如何在Java中进行异常处理,并介绍了自定义异常类的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

转载于:https://www.cnblogs.com/codc-5117/archive/2011/11/28/2266474.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值