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的子类;

java基础知识学习 java异常的更多相关文章

  1. Java基础知识学习(九)

    GUI开发 先前用Java编写GUI程序,是使用抽象窗口工具包AWT(Abstract Window Toolkit).现在多用Swing.Swing可以看作是AWT的改良版,而不是代替AWT,是对A ...

  2. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  3. java基础知识学习笔记

    本文知识点以js为参照.对比分析得出笔记.JavaScript之所以叫JavaScript是打算借助java推广自己.虽然都是开发语言,但JavaScript一开始主要运行在 客户端,而java主要运 ...

  4. Java基础知识学习(三)

    面向对象部分 首先要了解面向对象的思想,与C#一致,都是面向对象的语言 访问修饰符 public 共有的,对所有类可见. protected 受保护的,对同一包内的类和所有子类可见. private ...

  5. Java基础知识学习(一)

    部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Jav ...

  6. Java基础知识学习

    1.什么是Java编程语言 Java是:一种编程语言.一种开发环境.一种应用环境.一种部署环境 2.Java编程语言的主要目标 (1)提供一种解释环境为:提高开发速度.代码可移植性.使用户能运行不止一 ...

  7. JAVA 基础知识学习笔记 名称解释

    Java ee:​ IDE: ​ itegrity   development environment 集成开发环境 JMS:​ java Message Service java   信息服务 JM ...

  8. Java基础知识学习01

    0 项目,包,文件,类 Mytest是自己建的java工程,包含src和JRE System Libery.其中src是存放自己的代码的地方,JRE包含程序运行时所需要的各种文件:在src下包含Tes ...

  9. Java基础知识(JAVA之IO流)

    学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各 ...

随机推荐

  1. PAT 1062. 最简分数(20)

    一个分数一般写成两个整数相除的形式:N/M,其中M不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母 ...

  2. 移动端 触摸事件 ontouchstart、ontouchmove、ontouchend、ontouchcancel[转]

    转:http://www.cnblogs.com/irelands/p/3433628.html 1.Touch事件简介pc上的web页面鼠 标会产生onmousedown.onmouseup.onm ...

  3. Linux基础系列:常用命令(7)_正则表达式

    一.环境边量 每个用户登录shell需要执行的四个文件 /etc/profile /home/egon/.bashrc_profile /home/egon/.bashrc /etc/bashrc 非 ...

  4. Tomcat的Server.xml虚拟主机和虚拟目录的配置

    以前开发JavaEE网站都布置在Tomcat下,布置目录一般为$CATALINA_HOME/webapps/WebName,所以要访问网站,则在http://localhost后必须要加上上下文路径( ...

  5. c的详细学习(3)数据的输入输出

    c语言没有专门的数据输入输出语句,而是通过调用系统提供的的标准输入/输出库函数来实现数据的输入和输出.     (1)数据的输出: 注意:在使用标准的输入输出库函数时,使用编译预处理命令“#inclu ...

  6. Data Structure Graph: strong connectivity

    如果为undirected graph就是dfs或者bfs,如果都能visit则为连通O(V+E). 如果为directed graph就先dfs或者bfs,再reverse direct,再dfs或 ...

  7. mysql管理工具之pt-heartbeat

    之前我一直用Seconds_behind_master来衡量主从的延迟,今天看到文档,才觉得多么不可靠!以下是官方文档的描述: In essence, this field measures the ...

  8. 323 id与小数据池

    a = 1000b = 1000print(a == b)== 比较的是数值is 比较的是内存地址.print(a is b)查看内存地址id()print(id(a))print(id(b)) 小数 ...

  9. 如何彻底禁止手机连接usb,代码实…【转】

    本文转载自:https://blog.csdn.net/jun4331247/article/details/51201825 作为系统第三次被黑的修复方法,捯饬了半天,没效果,最后大神一出手,果然出 ...

  10. Blog迁移至Jekyll

    后续的Blog都将在 http://zhwbqd.github.io/ 为您呈现