Java异常

Java异常

第一种分类

alt

第二种分类

第二种种方法划分,可以分为可查异常(Checked Exception)不可查异常(Unchecked Exception)

Unchecked Exception : (编译器不会辅助检查的,需要程序员自己管的)异常,包括Error子类和RuntimeException子类。

  • 非RuntimeException的Exception的子类: (编译器会辅助检查的)异常, checked exception。
  • 注意: 编译器会检查程序是否为checked exception 配 置了处理。如果没有处理,会报错。

Checked Exception(非RuntimeException的Exception的子类),程序员必须处理,以发生后处理为主。编译器会 辅助检查。

  • Unchecked Exception中的RuntimeException子类,程序 必须处理,以预防为主。编译器不关心此类异常,也 不会辅助检查。
  • Error的子类,可以不用处理

如何处理函数抛出的异常?

1.直接吞掉

public void func1() throws Exception1 {
  // ...
}

public void func2() {
  //...
  try {
    func1();
  } catch(Exception1 e) {
    log.warn("...", e); //吐掉:try-catch打印日志
  }
  //...
}

2.原封不动 throws


public void func1() throws Exception1 {
  // ...
}


public void func2() throws Exception1 {//原封不动的re-throw Exception1
  //...
  func1();
  //...
}
  1. throw throws

public void func1() throws Exception1 {
  // ...
}


public void func2() throws Exception2 {
  //...
  try {
    func1();
  } catch(Exception1 e) {
   throw new Exception2("...", e); // wrap成新的Exception2然后re-throw
  }
  //...
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务