hello,大家好,今天跟大家分享一下java中如何自定义异常,以后如果有新的心得,再添加,欢迎前辈指导。。。

首先,上Api,看一下异常和错误的父类:

 

然后,现在假设我有个循环(i=0;i<100;i++),我想在i==10的时候停止运行,并执行我自定义的异常,该怎么做呢,请看:

//自定义异常类:

  自定义异常类,需要继承Throwable或Exception,并且重写printStackTrace()方法,此方法就是自定义异常的执行结果

public class MyException extends throwable{

  @Override
  public void printStackTrace() {
    System.out.println("my exception is");
  }

}

//测试类

public class ExceptionTest{

  public static void main(String args[]){

    for(int i=0;i<100;i++){

      if(i==10){

        try{

          throw new MyException();//执行我自定义异常(此处throw不是抛出异常,是执行异常,(注意和throws的区别:throws位置是在方法后面,是抛出异常))

         }catch(MyException e){

          e.printStackTrace();//此处自定义类继承了throwable类,并且重写了printStackTrace()方法,e这个对象属于子类,不存在多态关系,因此执行的是子类中的方法

         }

      }

    }

  }

}