1、异常:描述出错信息的对象。

字节码校验时,如发生错误,则会抛出异常。

2、所有异常的父类是Exception,异常可以捕获,可以处理。

所有错误的父类是Error,错误可以捕获,但不能处理。

Throwable是Exception和Error的父类。

3、通过try{}catch(Exception e){e.printStackTrace();}可以捕获异常,其中try表示需要检测的代码块,catch表示捕获,Exception e表示创建变量e,如果try块中抛出了异常,虚拟机就用e变量指向异常对象。e.printStackTrace();表示将异常对象中封装的异常信息打印出来。

4、异常执行的顺序,先顺序执行try块中的代码,如果try块中有异常发生,则终止try块中的其它代码,转入catch块执行。无论是否有异常,finally都会执行。

5、finally块是无论是否有异常发生,都会执行的代码块。一般用于资源清理工作,比如:流的关闭,数据库连接的关闭等。如果在try块或catch块中有return跳出方法,那么在方法跳出之前,会先执行finally内容,如果try块或catch块中有System.exit(0)中止虚拟机运行,那finally不会执行。

6、可以给一个try块添加多个catch块,当try块中throw异常后,会执行第一个和异常对象匹配的catch块,其余的catch块忽略不会执行。且添加的catch块中异常的类不能把父类异常放到子类异常前。

7、异常分为两类:编译期异常(检查异常)和运行期异常(非检查异常)。其中,编译期异常要求开发者必须捕获和处理的,否则就无法通过编译;运行期异常,开发者可以处理,也可以不处理,无论是否处理都可以通过编译。所有的运行期异常都是RuntimeException的子类。

8、throw 是一条语句,表示显示抛出一个异常对象。

throw new Exception();

9、throws是一个方法修饰符,表示在方法中可能会抛出某个异常。这样,调用方法时,必须捕获和处理该方法抛出的异常。

重写父类方法的子类方法不能声明抛出比父类方法更多的异常。

java面向对象编程--第十一章 异常处理的更多相关文章

  1. java面向对象编程— —第七章 继承

    7.1继承的起源 继承(Inheritance),即在面向对象编程中,可以通过扩展(extends)一个已有的类,并继承该类的属性的行为,来创建一个新的类. 已有的类称为父类(也可以称为基类,超类), ...

  2. java面向对象编程——第四章 类和对象

    OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...

  3. java面向对象编程——第五章 对象的行为

    5.1 方法调用栈 当一个方法被调用时,将导致控制流程跳转到被调用的方法.然后,控制流程执行方法中的语句.当然,被执行的方法可能会调用其它方法,导致控制流程跳转到其它方法.所有的方法调用都维护在一个称 ...

  4. java 面向对象编程-- 第15章 集合框架

    1.  集合特点:元素类型不同.集合长度可变.空间不固定 2.  java中对一些数据结构和算法进行了封装即集合.集合也是一种对象,用于存储.检索.操作和传输对象. 3.  JCF(Java Coll ...

  5. java 面向对象编程-- 第十三章 反射、类加载与垃圾回收

    1.狭义JavaBean规范 Javabean必须包含一个无参数的public构造方法,方便通过反射的方式产生对象. 属性必须都是私有的. Javabean必须包含符合命名规范的get和set方法,以 ...

  6. java面向对象编程——第六章 数组

    1.数组概述 数组是存储在一个连续的内存块中的元素集合.数组中的每个元素必须是相同的数据类型,并且通过索引进行区分.数组中的第一个元素的索引为0. 在java中,创建数组有两个步骤: 声明一个对数组的 ...

  7. java面向对象编程—— 第三章 程序流程控制

    3.1流程控制 三种基本技术可以改变程序的控制流程: ①   调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ②   选择:java中有两种做出选择的机制:if/else语句和sw ...

  8. java 面向对象编程 第20章 XML技术解析

    1.  XML:extended Markup Language  可扩展标记语言,利用标签和子标签方式描述数据. 2.  声明<?xml version=”1.0”?>版本号 注释< ...

  9. java 面向对象编程 第18章——网络编程

    1.  TCP/IP协议模型 应用层:应用程序: 传输层:将数据套接端口,提供端到端的通信服务: 网络互联层:负责数据包装.寻址和路由,同时还包含网间控制报文协议: 网络接口层:提供TCP/IP协议的 ...

随机推荐

  1. Eclipse小技巧--快速输入System.out.println();(转)

    步骤1:指定“Content Assist”的快捷键,参考:善用 Eclipse 组合键,提高输入效率 步骤2:输入源代码是,先输入sysout,然后输入辅助快捷键:Alt+/,这样就可以自动生成:S ...

  2. STRUTS2 标签 循环次数

    *<s:property value="menus.size()"/> * <s:if test='menus.size()>8'>    sssss ...

  3. for循坏的穷举与迭代,while、do while循环

    for循环的穷举:所有情况走一遍,使用if筛选出符合的情况. 单位发一张150元购物卡,到超市买三种洗化用品,洗发水15元,香皂两元,牙刷5元,刚好花完150元,有多少种买法,每种买法各买几样. 百鸡 ...

  4. 【Todo】蒙特卡洛(蒙特卡罗)树 & 卷积网络

    https://www.zhihu.com/question/41176911/answer/90066752 这里面有关于Deep Learning和蒙特卡洛树的一些内容 https://www.z ...

  5. AngularJS中service,factory,provider的区别(转载:http://my.oschina.net/tanweijie/blog/295067)

    目录[-] 一.service引导 二.service 1.factory() ‍2.service()‍ ‍3.provider()‍‍ 一.service引导 刚开始学习Angular的时候,经常 ...

  6. 【ufldl tutorial】Softmax Regression

    今天太长姿势了,什么叫懂了也写不出代码说的不就是我吗,就那么几行代码居然叽叽歪歪写了一个小时. 首先exercise要实现的是softmax的cost function和gradient,如下图: ( ...

  7. python把str转换为int

    def str2int(s): def fn(x,y): return x+y def char2num(s): ':9}[s] return reduce(fn,map(char2num,s)) ' ...

  8. 决策树原理、Scikit-learn实现及其在生物信息中的应用

    之前转过一篇文章:2016年GitHub排名前20的Python机器学习开源项目(转),说明现在已经有了很多很好的机器学习的包,我们不必从底层开始实现,只要懂点算法.会看文档,一般人也能玩好机器学习. ...

  9. PacBio & BioNano (Assembly and diploid architecture of an individual human genome via single-molecule technologies)

    Assembly and diploid architecture of an individual human genome via single-molecule technologies 文章链 ...

  10. u盘安装ubuntu server 14.04 以及No CD-ROM drive was detected 错误

    u盘安装ubuntu server 14.04 1:下载ubuntu server14的 iso镜像文件 2:下载 UltraISO U盘镜像制作工具 : 3:使用Ultra iOS 将下载好的 is ...