异常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相关推荐

  1. 【Java学习笔记】JavaSE基础全程笔记

    前言 该文章为Java自学笔记:JavaSE基础全程笔记,导航部分 学习视频为https://www.bilibili.com/video/av250694651 Java基础语法 Java面向对象基 ...

  2. 自学了python基础英语_Python自学路线图之Python基础自学

    Python自学路线图从Python基础语法开始,Python第一个程序,条件控制语句基础,容器类型基础,函数基础等.这些对Python小白的数学和英语能力的要求门槛不高,在学习的过程中积累相应的数学 ...

  3. 零基础自学python的建议-关于零基础学习 Python 有什么好的建议?

    Python这种高级编程语言,相比前编程明星C++和Java等更简单易操作.,目前Python已成为最受AI从业者欢迎的语言. Python的10个基础知识点 Python是一个面向对象的解释型的交互 ...

  4. 自学python需要多长时间-零基础自学python要多久?

    原标题:零基础自学python要多久? 如果是自学,从零基础开始学习Python的话,依照每个人理解能力的不同,大致上需要一年半左右的时间,至于能不能学好要看你自己的领悟了,至于找到工作那就不好说了. ...

  5. 0基础学python要多久-零基础自学python要多久?

    原标题:零基础自学python要多久? 如果是自学,从零基础开始学习Python的话,依照每个人理解能力的不同,大致上需要一年半左右的时间,至于能不能学好要看你自己的领悟了,至于找到工作那就不好说了. ...

  6. 【CXY】JAVA基础 之 异常概述

    概述: 1.异常给初学者的感觉(笔者当时就是这个感觉,不知道其他人是否有共鸣?) 1.异常是个什么东西?理解不了 2.很复杂 3.异常很"简陋",没什么用 4.我保证我写的程序正确 ...

  7. 【CXY】JAVA基础 之 异常

    讲述: 1.五个关键字 1.try:尝试捕获异常,具体的下面讲述 2.catch:当try捕获到异常了,系统会自动生成一个异常信息,这个异常信息就给catch,形象的说我抓住了这个异常. 3.thro ...

  8. javaSE基础重点知识点总结 持续更新

    javaSE基础重点知识点解析 文章目录 javaSE基础重点知识点解析 前言 1.重载和重写 2.匿名对象 3.可变个数形参的方法 4.MVC设计模式 5.java.lang.Object类 6.自 ...

  9. JavaSE基础阶段学习笔记

    MarkDown学习 标题 三级标题 四级标题 字体 hello,word! hello,word! hello,word! hello,word! 引用 选择狂神说Java,走向人生巅峰 分割线 图 ...

最新文章

  1. Docker导入、导出、删除容器
  2. 堆内存与栈内存的区别
  3. 图元和片元_OpenGL中的顶点、 图元、片元、像素的含义
  4. mathtype公式如何在word中对齐
  5. shell编程之循环语句
  6. 关于GitHub下载巨慢问题的解决方案
  7. php 递归分销角色,PHP递归无限分类
  8. 简明Python3教程 16.标准库
  9. .Net QQ互联教程 1
  10. 电脑坏了,疑似主板故障
  11. python百度文库文字提取_百度文库文字爬取
  12. 《工业设计史》第十一章:走向多元化
  13. 链栈的基本操作(入栈,出栈)
  14. CorelDRAW 2020下载详细安装图文教程指导Win/Mac全版本
  15. 牛客 送分啦-QAQ
  16. 沉睡者IT - 月赚几千的创业项目思路,抖音文案号网赚项目
  17. 东方卫视携微软小冰打造人工智能新闻节目引热议
  18. 产品设计- 需求分析
  19. 用友U9 BP不执行
  20. 互联网时代/数据分析时代,一张思维导图带你学习数据分析的思路

热门文章

  1. 模拟实现 strncmp
  2. Redis基础数据结构String:你知道String长度限制多少吗
  3. Java实现:猴子吃桃问题
  4. linux 下的shutdown指令
  5. Docker一键脚本安装、命令使用和常用软件安装
  6. *1038苹果和虫子
  7. 学习python中的pandas教程
  8. Orange Pi i96 入手填坑问题(2)-wifi网卡MAC地址随机变化和串口粘贴死机问题
  9. Freemarker生成带图片的模板 注意事项
  10. 公告:capi自今日起迁移到sourceforge.net里,改名为mcapi