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 --->开始 --- ...
随机推荐
- 2019-10-26-Inno-Setup-安装包脚本-Run-的-Flags-标记
title author date CreateTime categories Inno Setup 安装包脚本 Run 的 Flags 标记 lindexi 2019-10-26 08:42:39 ...
- python 临时修改模块搜索路径
- Django1.11使用命令makemigrations提示No Changes
在项目中,遇到models模型变动,变动后合并发生问题,故当时做了删除应用文件夹下migrations文件,由于数据库里无较多新数据,故删除后重建,但重建后执行模型合并操作结果为No Changes, ...
- 好玩又实用,阿里巴巴开源混沌工程工具 ChaosBlade
减少故障的最好方法就是让问题经常性的发生.在可控范围或环境下,通过不断重复失败过程,持续提升系统的容错和弹性能力. 那么,实施一次高效的混沌工程实验,需要几步呢? 答案:2 步. ① 登陆 Chaos ...
- time 与 data time
>>> import datetime>>> datetime.datetime.now()datetime.datetime(2018, 5, 30, 15, 3 ...
- spark编译与onyarn的执行
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u014393917/article/details/24640715 Spark on yarn执行 ...
- C/S和B/S交互 2016-03-19 11:27 1275人阅读 评论(30) 收藏
最近一直在做C/S的项目,每天都超忙,抽个时间写篇博客,之前一直做C/S项目就是各种窗体,各种控件,拖来拖去,然后点进去写方法,做BS的时候呢,因为一直使用的是mvc,所以就是经常手写代码,或者拖引用 ...
- @codeforces - 455E@ Function
目录 @description@ @solution@ @accepted code@ @details@ @description@ 已知 a 序列,并给定以下关系: \[\begin{cases} ...
- auto uninstaller密钥激活码破解注册机ver 8.8.58
auto uninstaller密钥破解注册机ver 8.8.58 楼主分享几个auto uninstaller密钥破解注册机,可以用于auto uninstaller 8.8.58 .因为每个版本的 ...
- Java发送邮件的工具类
package com.csice.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...