1: Unchecked Exception( 也就是运行时异常) VS  Check Exception(非运行时异常)

2: 运行期异常  VS  非运行期异常?

非运行时异常: 必须在代码中显示的声明捕获也就是放在try{}catch(){}块中,或者在方法上申明throws 来抛出异常,类型上都属于Exception类及其子类。

运行时异常:不需要特意的申明,一般运行时异常都是虚拟机出现问题了才会报,比如你写个死循环导致内存不足什么的, 运行时异常都是RuntimeException类及其子类,如 NullPointerExcetpion、IndexOutOfBoundsExcrtiption等,程序可以不捕获。一般是由逻辑引起的,要尽量避免。

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

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

3: 什么是异常丢失?

  抛出异常后处理异常的code又抛出新异常,则旧异常丢失。

4: 异常处理两种方式? 

   用try {}  catch{}  finally {}  捕获处理;       函数后面throws Excepltion,抛出异常,函数内部throw new Exception()。

5:  如何自定义异常?

  继承Exception或其子类(比如RuntimeException)。

6: try语句块中有return, 会执行finally吗?   如果执行try{} 之前有return,  finally会执行吗?

  try中有return, 也会首先执行finally中的代码;  如果是Sytem.exit(0),就不执行finally;

  如果在try之前有return, finally 是不会被执行的。

7: catch中的异常匹配?

  基类会捕获派生类异常。catch的时候,会先匹配派生类的,然后是基类的。

8: Throwable, Error, Exception, RuntimeException的区别?

  (1)Throwable类是 Java 语言中所有错误或异常的超类。它的两个子类是Error和Exception;

  (2)Error是Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件;

  (3)Exception类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件;

  (4)RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。

    可能在执行方法期间抛出但未被捕获的RuntimeException 的任何子类都无需在 throws 子句中进行声明。它是Exception的子类;

最新文章

  1. canvas学习和面向对象(二)
  2. BizTalk动手实验(十七)ODBC适配器使用
  3. MVC上传文件
  4. Linux下动态库查找路径的问题
  5. 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)
  6. 几款web开发常用jquery特效代码
  7. IN()
  8. java zip文件的解压缩(支持中文文件名)
  9. HTML5 webSQL
  10. cocos2d-x学习知识点记录
  11. 【HDOJ】3061 Battle
  12. linux boost 安装
  13. tab切换jquery代码
  14. 53. leetcode557. Reverse Words in a String III
  15. [ZOJ1482]Partitions
  16. go runtime.Gosched()的作用分析
  17. CSUOJ 1956 数字和
  18. parameter server学习
  19. thinkphp3.2 上传图片兼容小程序
  20. Week Two

热门文章

  1. JDBC详解1
  2. 第一个Spring Boot程序启动报错了(番外篇)
  3. java面向对象入门之方法参数的传递
  4. SM30 表格维护生成器
  5. vuex源码 安装依赖问题
  6. C#窗体互动
  7. C#读取excel 找不到可安装的ISAM
  8. LeetCode:字符串的排列【567】
  9. Gem简介
  10. JavaScript的Function 类型