文章目录

  • 异常
    • 异常体系结构
    • 异常处理机制
      • try {} catch{} finally{}
      • throws
      • 开发中
      • throw
      • 自定义异常

异常

异常体系结构


运行时异常:运行时出现的异常
编译时异常:编译时出现的异常

异常处理机制

try {} catch{} finally{}

异常处理是通过try-catch-finally语句实现的。

try{...... //可能产生异常的代码
}
catch( ExceptionName1 e ){...... //当产生ExceptionName1型异常时的处置措施
}
catch( ExceptionName2 e ){...... //当产生ExceptionName2型异常时的处置措施
}[ finally{...... //无论是否发生异常,都无条件执行的语句
} ]

说明:

  1. finally 是可选的
  2. 使用try将可能出现异常代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常类的对象
  3. 一旦处理完成后就会跳出try{}catch结构,继续执行后面的代码
  4. 后面的异常类型要大于或与前面的异常类型互斥
  5. 常用的异常对象处理方式:String getMessage()printStackTrace()
  6. 在try结构中声明的变量,出了try结构以后,就不能再被调用

try{}catch{}:将编译期异常推到运行期,可以捕获运行期异常
运行时异常通常不编写try{}catch{}

finally 说明

  • finally是可选的,在finally中声明的是一定会被执行的代码。即使catch中出现了异常,try中有return,catch中有return,也一样会被执行
  • 像数据库连接、输入输出流、网络编程Socket等资源,JVM是不能自动回收的,我们需要自己手动的进行资源的释放。此时就需要声明在finally中
    @Testpublic void test(){FileInputStream fis = null;try {//获取项目根目录下文件File file = new File("hello.txt");fis = new FileInputStream(file);int data = fis.read();while (data != -1){System.out.print((char)data);data = fis.read();}}catch (FileNotFoundException e){e.printStackTrace();}catch (IOException e){e.printStackTrace();}finally{try {if (fis != null) {fis.close();}}catch (IOException e){e.printStackTrace();}}}
public class CMD{public static void main()
}

throws

将异常向上抛出,抛给方法调用者,指明该方法使用时可能出现的异常
子类重写的方法抛出的异常类型,不大于父类重写的方法抛出的异常

开发中

在方法的调用者处集中处理,在被调用方法一般向上抛

throw

throw是产生异常对象,throws是处理异常对象方式
一般throws new RuntimeException(); throw new Exception(); 以及自定义异常

自定义异常

如何自定义异常类

  1. 继承与现有的异常结构:RuntimeExceptionException
  2. 提供全局常量:serialVersionUID
  3. 提供重载的构造器
    public class MyException extends RuntimeException{static final long serialVersionUID = -703478989082389Lpublic MyException(){}public MyException(String msg){super(msg);}
    }
    

第七章 ---- 异常处理相关推荐

  1. CoreJava 笔记总结-第七章 异常,断言和日志

    文章目录 第七章 异常,断言和日志 处理错误 异常的分类 声明检查型异常 如何抛出异常 创建异常类 捕获异常 捕获单个异常 捕获多个异常 再次抛出异常和异常链 `finally`子句 `try-wit ...

  2. java第七章jdbc课后简答题_java学习路线流程

    第一阶段JavaSE: 第一章:jdk的安装与配置 第二章:Java基础语法: 变量.常量.数据类型.关键字 运算符和表达式:运算符:+.-.*./ 表达式:正则表达式 关系及逻辑运算符:关系运算符: ...

  3. 第七章 Java基础类库

    前言:如果你真正学习到了这里,那么先容许我夸赞一下你,太棒了!哪怕你对前面六篇文章的掌握度达到50%也是非常了不起的了,关于后面的文章学习我只能说,非常简单,只是我们文章会非常详细的介绍实现原理和一些 ...

  4. C++对象模型-在对象模型的尖端 第七章笔记

    读完C++对象模型书后,做一个笔记整理 第一章-关于对象 第二章-构造函数语义学 第三章-Data语义学 第四章-Function语义学 第五章-构造拷贝解析语义学 第六章-执行期语义学 第七章-在对 ...

  5. Core Java 读后感 - 第七章 异常、断言和日志

    第七章 异常.断言和日志 7.1 处理异常 如果由于出现错误使得某些操作没有完成, 程序应该: 返回到一种安全状态,并能够让用户执行其他命令 允许用户保存所有工作的结果,并以妥善的方式终止程序 异常处 ...

  6. 计算机原理与应用第七章——中断系统与Cortex-M微处理器的异常

    第七章--中断系统与Cortex-M微处理器的异常 文章目录 第七章--中断系统与Cortex-M微处理器的异常 一.异常和中断的基本概念 (一)中断源 (二)中断管理 (三)中断优先级管理 (四)中 ...

  7. 数字图像处理——第七章 小波和多分辨处理

    数字图像处理--第七章 小波和多分辨率处理 文章目录 数字图像处理--第七章 小波和多分辨率处理 写在前面 1 多分辨率处理 1.1 图像金字塔 1.2 多尺度和多分辨率的区别 2 小波 2.1 连续 ...

  8. 现实迷途 第七章 特殊客户

    第七章 特殊客户 注:原创作品,请尊重原作者,未经同意,请勿转载,否则追究责任. 江北一般都是上午待在办公室里,搜集信息或整理以前做过的系统,下午才出去站街招客. 站街站了一段时间后,江北有点不想去了 ...

  9. stm32 工业按键检测_「正点原子STM32Mini板资料连载」第七章 按键输入实验

    1)实验平台:正点原子STM32mini开发板 2)摘自<正点原子STM32 不完全手册(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第七章 按键输入实验 上一章,我们介 ...

最新文章

  1. base64开源库介绍及使用
  2. 我也来晒Flex编写的工作流编辑器
  3. ElasticSearch 数据类型keyword和text的区别
  4. Eclipse 浏览(Navigate)菜单
  5. 13寸笔记本电脑尺寸_2019年五款最好的13英寸笔记本电脑(windows)
  6. 十六进制字符串转整形
  7. 华为Mate 40系列还有新升级:有望首发66W超级快充
  8. vue element Form-Item prop
  9. 【转】如何在Qt 4程序中优化布局结构-兼回答网友提问
  10. 如何实现在Windows上运行Linux程序,附示例代码
  11. [转载] 使用Python中的NLTK和spaCy删除停用词与文本标准化
  12. 奋斗吧,程序员——第二十九章 伤心桥下春波绿,疑是惊鸿照影来
  13. 教师计算机应用能力现状分析,信息技术教学应用个人现状分析以及发展计划
  14. axios爬坑之provisional headers are shown
  15. “自贸云”+“自贸大数据”将加速辽宁自贸区建设与创新
  16. 台式计算机无线网络,台式电脑如何使用无线上网?
  17. 南京信息工程大学python期末考试_南京信息工程大学的雷丁学院怎么样?
  18. 中企海外周报 | 华为在西班牙启动Wi-Fi 6高校创新应用测试试点;爱奇艺人脸识别技术获全球学术会议认可...
  19. SpringMVC 406
  20. 数学与应用数学专业考计算机研究生,数学与应用数学专业学生考研有哪些方向 数学与应用数学专业学生考研方向是怎样的...

热门文章

  1. 【报告分享】2020直播电商生态白皮书.pdf(附下载链接)
  2. 全球首发!计算机视觉Polygon Mesh Processing读书笔记——5微分几何中的弧长
  3. sklearn中的train_test_split函数
  4. 跨境电商独立站门槛高,为什么还有无数人挤破头想入坑!
  5. TikTok玩法攻略总结,从输出内容再到变现,结尾送干货!
  6. Leetcode每日一题:24.swap-nodes-in-pairs(两两交换链表中的节点)
  7. CCF2015-12-2 消除类游戏
  8. 白板机器学习笔记 P13-P21 线性分类
  9. 离线批量数据通道Tunnel的最佳实践及常见问题
  10. python项目软件代码_七套Python库快速提升您项目的代码可维护性,软件工程,代码库...