A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小王在黑马 中级黑马   /  2015-8-5 14:13  /  355 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.1 Error和Exception 区别
  Throwable:
    |——Error:错误,一般情况下不便携针对性的代码进行处理,需要对程序代码进行修正。
  属于编译时的错误,编译不通过就不会有相应的class文件
    |——Exception:异常,可以有针对性代码进行处理。

1.2 throw和throws的区别
  throw:是在函数内抛出异常对象,当抛出的异常不是RuntimeException子类时,需要在函数名上throws。
  throws:是在函数上抛出异常类,可以抛出多个异常类,类与类之间用逗号隔开。
ps:无论是throw,还是throws 都是希望调用者去处理异常的。

1.3 编译时被检查的异常和运行时的异常区别
  1、编译时被检查的异常:只要是Exception及其子类都是编译时被检测的异常。
      编译时的异常必须在函数内抛出,在函数上声明,否则编译失败
      声明的原因是需要调用者去处理。

  2、运行时的异常:其中Exception有一个特殊的子类RuntimeException,他和它的子类是运行时异常,是编译时不被检测的。
      运行时的异常在函数内抛出,不需要再函数名上声明,
      不声明的原因是:不需要调用者处理,运行时异常发生了,程序就停止了,调用者必须对代码进行修改。

1.4 对于异常什么时候try,什么时候throws呢?
  功能内部出现异常,内部可以处理,就用try。如果功能内部处理不了,就必须throws声明出来,让调用者处理。

1.5 子类对父类异常的操作
  1、当子类覆盖父类的方法时,父类的方法抛出异常,那么子类的方法要么try要么抛出此异常和改异常的子类,不能抛出其他异常。
  2、如果父类抛出了多个异常,那么子类在覆盖时只能抛出父类异常的子集。
  3、如果父类或者接口中没有抛出异常,那么子类不可以抛出异常,此时出现了异常只能try。如果try解决不了,就可以throw抛出RuntimeException异常或其子类。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马