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 --->开始 --- ...
随机推荐
- oracle如何检查用户是否用了默认密码
如果使用默认密码,很可能就对你的数据库造成一定的安全隐患,那么可以使用如下的查询获得那些用户使用默认密码 select username "User(s) with Default Pass ...
- OpenTelemetry-可观察性的新时代
有幸在2019KubeCon上海站听到Steve Flanders关于OpenTelemetry的演讲,之前Ops领域两个网红项目OpenTracing和OpenCensus终于走到了一起,可观察性统 ...
- 【JZOJ1922】【Usaco 2005 NOV Gold】小行星群
题目描述 Bessie想驾驶她的飞船穿过危险的小行星群,小行星群是一个N×N的网格(1 <= N <= 500),在网格内有K个小行星(1 <= K <= 10,000). 幸 ...
- ADO.NET sqlHelper类(DBHelper类)
1.配置文件 <connectionStrings> <add name="constr" connectionString="Data Source= ...
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛C. Sum【脑洞题】
限制:1000ms 32768K Define the function S(x) for xx is a positive integer. S(x) equals to the sum of al ...
- 洛谷P1616 疯狂的采药
//完全背包 #include<bits/stdc++.h> using namespace std; ; ; int n,m,v[maxn],w[maxn],f[maxv]; int m ...
- [***]HZOJ 跳房子
一道非常神仙的题. 算法一:对于20%的数据: 模拟,直接走K步,时间复杂度O(K) 算法二:对于40%的数据:走M*N步内必有一个循环节.直接走,找循环节,时间复杂度O(M*N) 正解大概有两种做法 ...
- Project Euler Problem 24-Lexicographic permutations
全排列的生成,c++的next_permutation是O(n)生成全排列的.具体的O(n)生成全排列的算法,在 布鲁迪 的那本组合数学中有讲解(课本之外,我就看过这一本组合数学),冯速老师翻译的,具 ...
- selenium webdriver学习(八)------------如何操作select下拉框(转)
selenium webdriver学习(八)------------如何操作select下拉框 博客分类: Selenium-webdriver 下面我们来看一下selenium webdriv ...
- 2019南昌网络赛-I. Yukino With Subinterval 线段树套树状数组,CDQ分治
TMD...这题卡内存卡的真优秀... 所以以后还是别用主席树的写法...不然怎么死的都不知道... 树套树中,主席树方法开权值线段树...会造成空间的浪费...这道题内存卡的很紧... 由于树套树已 ...