JavaSE基础自学----异常2
异常2
- finally
- 异常在子父类覆盖中的体现
- 异常练习
finally
finally代码块 : 定义一定执行的代码
通常用于关闭资源,因为资源必须释放
注:只有一种情况,finally是不会执行的:当catch中有System.exit(0).
public void method(){连接数据库数据操作; (可能会出现有一些异常:throw new SQLException)关闭数据库; 如果数据操作出现异常,则抛出了异常,函数就结束了,数据库没有被关闭,资源则一直被使用}public void method1(){try{连接数据库数据操作;}catch(SQLException e){数据库异常处理方式}finally {关闭数据库 (无论数据操作是否成功,最终都要关闭数据库释放资源) }}
异常在子父类覆盖中的体现
- 子类在继承父类时,如果父类的方法抛出异常,那么子类覆盖的方法只能抛出父类的异常或者该异常的子类
class AException extends Exception { // A异常
}class BException extends AException { //B异常继承了A异常
}class CException extends Exception { //C异常
}class fu {public void div() throws AException { //父类抛出A异常}
}class zi extends fu {public void div() throws BException { //子类可以抛出B异常或者A异常,不能抛出C异常}
}
- 如果父类抛出多个异常,那么子类覆盖该方法时,只能抛出父类存在的异常或异常子类
- 果父类或者借口方法中没有异常抛出,那么子类覆盖方法时,也不可以有异常抛出
如果子类方法发生了异常,就try/catch 内部处理
异常练习
/*
长方形,圆形 求面积
长方形的长宽,园的半径不能为负数和零,否则视为异常
当调用者输入了负数,则程序终止,需要调用者修改输入值才可以
*/class ValuesException extends RuntimeException { //自定义 值异常,该异常继承RuntimeExceptionValuesException() {}ValuesException(String msg) {super(msg);}
}class Rectangle { //长方形类private int lenght, width; //定义长宽Rectangle(int lenght, int width) {if (lenght <= 0 || width <= 0) {throw new ValuesException("长和宽的数值异常"); //如果长宽为负数,则抛出一个异常}this.lenght = lenght;this.width = width;}public void geArea() {System.out.println("长发形面积:" + lenght * width);}
}class Circular {private int radius;public static final double PI = 3.14; //定义PI常量Circular(int radius) {if (radius <= 0) {throw new ValuesException("圆的半径值异常");}this.radius = radius;}public void getArea() {System.out.println("圆的面积:" + radius * radius * PI);}
}public class DEMO {public static void main(String[] args) {Rectangle r = new Rectangle(-1, 5);r.geArea();Circular c=new Circular(1);c.getArea();}
JavaSE基础自学----异常2相关推荐
- 【Java学习笔记】JavaSE基础全程笔记
前言 该文章为Java自学笔记:JavaSE基础全程笔记,导航部分 学习视频为https://www.bilibili.com/video/av250694651 Java基础语法 Java面向对象基 ...
- 自学了python基础英语_Python自学路线图之Python基础自学
Python自学路线图从Python基础语法开始,Python第一个程序,条件控制语句基础,容器类型基础,函数基础等.这些对Python小白的数学和英语能力的要求门槛不高,在学习的过程中积累相应的数学 ...
- 零基础自学python的建议-关于零基础学习 Python 有什么好的建议?
Python这种高级编程语言,相比前编程明星C++和Java等更简单易操作.,目前Python已成为最受AI从业者欢迎的语言. Python的10个基础知识点 Python是一个面向对象的解释型的交互 ...
- 自学python需要多长时间-零基础自学python要多久?
原标题:零基础自学python要多久? 如果是自学,从零基础开始学习Python的话,依照每个人理解能力的不同,大致上需要一年半左右的时间,至于能不能学好要看你自己的领悟了,至于找到工作那就不好说了. ...
- 0基础学python要多久-零基础自学python要多久?
原标题:零基础自学python要多久? 如果是自学,从零基础开始学习Python的话,依照每个人理解能力的不同,大致上需要一年半左右的时间,至于能不能学好要看你自己的领悟了,至于找到工作那就不好说了. ...
- 【CXY】JAVA基础 之 异常概述
概述: 1.异常给初学者的感觉(笔者当时就是这个感觉,不知道其他人是否有共鸣?) 1.异常是个什么东西?理解不了 2.很复杂 3.异常很"简陋",没什么用 4.我保证我写的程序正确 ...
- 【CXY】JAVA基础 之 异常
讲述: 1.五个关键字 1.try:尝试捕获异常,具体的下面讲述 2.catch:当try捕获到异常了,系统会自动生成一个异常信息,这个异常信息就给catch,形象的说我抓住了这个异常. 3.thro ...
- javaSE基础重点知识点总结 持续更新
javaSE基础重点知识点解析 文章目录 javaSE基础重点知识点解析 前言 1.重载和重写 2.匿名对象 3.可变个数形参的方法 4.MVC设计模式 5.java.lang.Object类 6.自 ...
- JavaSE基础阶段学习笔记
MarkDown学习 标题 三级标题 四级标题 字体 hello,word! hello,word! hello,word! hello,word! 引用 选择狂神说Java,走向人生巅峰 分割线 图 ...
最新文章
- Docker导入、导出、删除容器
- 堆内存与栈内存的区别
- 图元和片元_OpenGL中的顶点、 图元、片元、像素的含义
- mathtype公式如何在word中对齐
- shell编程之循环语句
- 关于GitHub下载巨慢问题的解决方案
- php 递归分销角色,PHP递归无限分类
- 简明Python3教程 16.标准库
- .Net QQ互联教程 1
- 电脑坏了,疑似主板故障
- python百度文库文字提取_百度文库文字爬取
- 《工业设计史》第十一章:走向多元化
- 链栈的基本操作(入栈,出栈)
- CorelDRAW 2020下载详细安装图文教程指导Win/Mac全版本
- 牛客 送分啦-QAQ
- 沉睡者IT - 月赚几千的创业项目思路,抖音文案号网赚项目
- 东方卫视携微软小冰打造人工智能新闻节目引热议
- 产品设计- 需求分析
- 用友U9 BP不执行
- 互联网时代/数据分析时代,一张思维导图带你学习数据分析的思路