黑马程序员技术交流社区

标题: java异常的问题 [打印本页]

作者: 一步一脚印    时间: 2013-11-15 09:54
标题: java异常的问题
  1. static void test() throws Error {
  2.          if (true) throw new AssertionError();
  3.                  System.out.print(“test “)
  4. }
  5. public static void main(String[] args) {
  6.         try { test(); }
  7.         catch (Exception ex) { System.out.print(“exception “);
  8.          System.out.print(“end”)
  9. }
复制代码
test方法声明抛出Error, 那抛出的AssertionError异常, 在主函数Exception应该捉不都的吧。???

作者: hel    时间: 2013-11-15 14:42
static void test() throws Error {
         if (true) throw new AssertionError();
                 System.out.print(“test “)
}

你在这里抛出的是error
那他捕获的是异常,所以捕获不到
作者: 胡乃锋    时间: 2013-11-17 19:55
Throwable 两个子类:Error和Exception
Error:该异常不可控的,致命的错误,不能通过代码解决的问题,底层或硬件问题.
Exception:可控的,通常可以Throw向上抛出或try catch捕获该异常.
catch (Exception ex)  你catch Exception之后只能抛出属于Exception子类的异常,Error和Exception都不是一个异常体系的所以捕获不到Error。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2