首页 > 代码库 > Java 异常基础知识总结

Java 异常基础知识总结


RuntimeException类是Exception类的子类,它叫做运行时异常,Java中的所有运行时异常都会直接或者间接地继承自RuntimeException类。

RuntimeException

Java中凡是继承自Exception,而不继承自RuntimeException类的异常都是非运行时异常。

Exception在程序中必须使用try……catch进行处理;而RuntimeException可以不使用try……catch进行处理,但是如果有异常产生,
则异常交给JVM(java虚拟机(java virtual machine))处理,程序无法处理。

Throwable 类是 Java 语言中所有错误或异常的超类(这就是一切皆可抛的东西)。它有两个子类:Error和Exception。

对于非运行时异常(checked exception),必须要对其进行处理,否则无法通过编译。
处理方式有两种:
  1.使用try..catch..finally进行捕获;
  2.在产生异常的方法声明后面写上throws 某一个Exception类型,如throws Exception,将异常抛出到外面一层去。

在定义一个方法时可以使用throws关键字声明,表示此方法不处理异常,而是交给方法调用处进行处理。

throw直接抛出异常类的实例化对象。往往抛出程序中已经产生的异常类实例。

1)
class Math{
  public int div(int i,int j) throws Exception{      //此方法可以不处理异常,即说明此方法中即使
                             不使用try……catch语句,所产生的异常也会由
                            调用处处理,例如下一个例子。
    System.out.println("…………计算开始…………");
    int temp = 0;
    try{
        temp = i/j;
    }catch (Exception e){
                throw e; //把异常交给调用处
    }finally{
            System.out.println("…………计算技术…………");
    }
      return temp;
  }
}

public class ThrowDemo02 {

  public static void main(String[] args) {
    Math m = new Math();
    try {
        System.out.println("除法操作:"+m.div(10,0));
    }catch(Exception e){
        System.out.println("异常产生:"+e);
    }

  }

}

2)
class Math{
  public int div(int i,int j) throws Exception{
      System.out.println("…………计算开始…………");
      int temp = 0;

      temp = i/j;

      return temp;
  }
}

public class ThrowDemo02 {

    public static void main(String[] args) {
      Math m = new Math();
      try {
          System.out.println("除法操作:"+m.div(10,0));
      }catch(Exception e){
          System.out.println("异常产生:"+e);
      }

    }
}

Java 异常基础知识总结