JavaSE基础---异常
异常
Throwable----具备可拋性:就是该体系中的类和对象都可以被关键字throw或throws所操作。
|---Error ---错误,一般不编写针对性处理方式
|---Exception---异常,可以有针对性的处理方式
|---RuntimeException(运行时异常、不被检测时异常)
|---在函数内被抛出,函数不需要声明(异常发生时,已经无法让程序继续运行,所以不需要调用者处理,直接让程序停止)
|---CheckedException(被检测时异常)
|---在函数内被抛出,函数必须要声明,否则编译失败(调用者需要知道是什么异常,来进行针对性处理)
异常处理方式
|---抛出 ---功能内部出现异常,但是内部不能处理,就抛出
|---throw:用于函数内,后面跟异常对象,抛出异常对象
|---thorws:用于函数上,后面跟异常类名,抛出异常类
|---捕捉(try...catch...fianlly)---功能内部出现异常,并且内部可以处理,就用try
|---功能抛出几个异常,就调用几个对应的catch处理代码块
|---try对应多个catch时,父类catch必须放在下面(因为如果放在上面,父类捕捉到异常后,下面的catch就不运行了)
|---除非JVM退出,finally代码块一定会执行,可以用于用户关闭资源。
当异常出现后,子父类进行覆盖时,有了一些新的特点:
1、当子类覆盖父类方法时,如果父类抛出了异常,那么子类方法要么抛出父类异常或者该异常的子类,要么不抛出异常。
2、如果父类抛出多个异常,那么子类覆盖时只能抛出父类异常的子集。
注意,父类没有抛出异常的情况下,子类是不能抛出异常的,如果此时子类覆盖的方法中出现异常,只能用try不能用throws,但是如果子类不能处理,并且影响到了子类方法的运行,这时可以用throw在函数内抛出RuntimeException异常或其子类(RuntimeException异常不需要在函数上throws声明)。
JavaSE基础---异常的更多相关文章
- JavaSE基础之JDBC
JavaSE基础之JDBC 1.JDBC 的步骤: ①加载数据库驱动: a.MySQL:com.mysql.jdbc.Driver: b.SQLServer:com.microsoft.jdbc.sq ...
- JavaSE基础:集合类
JavaSE基础:集合类 简单认识类集 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储. 而要向存储多个对象,就不能是 ...
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- javaSE基础05
javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- javaSE基础02
javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...
- JavaSE基础01
JavaSE基础篇01 ------从今天开始,我就学习正式java了,O(∩_∩)O哈哈~,请大家多指教哦 一.Windows常见的dos命令 操作dos命令: win7 --->开始 --- ...
随机推荐
- 基于OPNET的路由协议仿真教程(AODV、OLSR 、DSR等)
前言: 目前由于项目需要,学习了基于opnet的网络仿真方法,发现该软件的学习资料少之又少,所以将自己搜集到的学习资料进行整理,希望能帮助后来的人. 主要参考资料:OPNET网络仿真(清华陈敏版) 仿 ...
- More Effective C++: 03异常
C++的异常机制使得程序付出某些代价:资源泄漏的可能性增加了:写出具有你希望的行为的构造函数与析构函数变得更加困难:执行程序和库程序尺寸增加了,同时运行速度降低了等等. 但是为什么使用异常呢?C程序使 ...
- APP上线前,如何做运营推广工作?
http://www.cocoachina.com/market/20150723/12731.html 一 竞品分析 1.选择竞品,做好定位(选择两个产品最好,最多三个). 如何获取竞品? A 百度 ...
- input禁止复制、粘贴、剪切
<input type="text" autocomplete="off"> <!-- autocomplete="off" ...
- 2019-1-16-win10-uwp-发布的时候-ILC-编译不通过
title author date CreateTime categories win10 uwp 发布的时候 ILC 编译不通过 lindexi 2019-1-16 20:37:5 +0800 20 ...
- Python基础:07迭代器
迭代器是在版本 2.2 被加入Python 的,它为类序列对象提供了一个类序列的接口.Python 的迭代无缝地支持序列对象,而且它还允许迭代非序列类型,包括用户定义的对象.它的出现,对列表迭代.字典 ...
- Android中使用Apache common ftp进行下载文件
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/birdsaction/article/details/36379201 在Android使用ftp下 ...
- git 本地仓库操作
一.git对象模型和存储 二.常用命令 1)git checkout branch 切换分支 假设现在有两个分支,master和dev分支 i dev分支上没有readme.txt 在master分支 ...
- Mysql到Java数据类型映射的JDBC规范
- centos下iptables安装
[root@localhost ~]# yum install iptables -y[root@localhost ~]# yum install iptables-services 查看安装情况 ...