Java异常总结

46 阅读1分钟
1、异常类层级关系:
   父级接口 Throwable
   Exception(异常基类)
      RuntimeException(运行时异常)
   Error -- 错误(栈溢出等jvm抛出的错误)
2、异常分类:
    ExceptionRuntimeException:运行时异常,非受检异常,非受检异常不要求在编写代码时处理
        其他非RuntimeException:编译时异常,受检异常,受检异常要求在编写代码时明确处理
3throws:
    在方法末尾 生命方法可能抛出的异常,用于提示调用方进行处理
    如果throws RuntimeException(非受检异常),不要求调用方在编写代码时明确处理
    如果throws 非RuntimeException(受检异常),要求调用方在编写代码时明确处理
public void method2() {
  method1();

  try {
    method3();
  } catch (Exception e) {

  }
}

/**
 * 非受检异常
 */
public void method1() throws NumberFormatException {}

/**
 * 受检异常
 */
public void method3() throws ParseException {}

4、throw关键字

throw new Exception();当前方法不处理异常,向调用方抛出,让调用方处理
如果throw 一个非RuntimeException(受检异常),需要使用throws在方法处声明
如果throw RuntimeException(非受检异常),无须使用throws在方法处声明
public void method1() throws ParseException {
  throw new ParseException("哈哈哈哈", 1);
}

public void method2() {
  throw new RuntimeException();
}