2.Java异常学习
1.Java异常的概念
- 异常的例子
- 1.除法就是一个需要捕获异常的例子,除数又可能是0
- 异常处理的基本流程如下
- 一旦发生异常,就使得程序不按照原来的流程继续的运行下去
- a.程序抛出异常
- try{
- throw new Exception();
- }
- b.捕获异常
- catch(Exception e){
- //异常处理程序
- }
- catch(Exception e){
- c.finally代码块
- 必须注意的是:在finally块中不能抛出异常。
- finally{
- //一定会被执行
- //除非catch中有System.exit(0);会推出Java虚拟机
- }
- finally{
- 总结:
- 1.当程序中抛出一个异常后,程序从程序中导致异常的代码处跳出,java虚拟机检测寻找和try关键字匹配的处理该异常的catch块,如果找到,将控制权交到catch块中的代码,然后继续往下执行程序,try块中发生异常的代码不会被重新执行。如果没有找到处理该异常的catch块,则执行finally块代码。
- 2.线程的run函数是不能抛出异常的(可以在函数内部捕获并处理,但是不能向上提交),run函数的异常被提交给uncaughtExceptionHandler处理,后变会详细介绍
- 3.出了run函数其他的函数都可以把函数中抛出的异常向上级提交。
- 异常的结构
图1.异常结构(来自参考文献一)
- 异常分类
- 1.UnckeckedException--Error(不准确,但是Error确实是在运行时检查并抛出的)和RunTimeException-------程序中不需要进行补货
- 2.checkedException-----IOException、ClassNotFoundException、CloneNotSupportedException
- 这里的检查不检查针对的是编译器
- 常见的RunTimeException-NullPointerException、数组越界、字符串越界、算数错误(a/b)、参数类型错误(Integer.parseInt(“abc"))
在声明方法时候抛出异常
- public void openFile() throws IOException{//code}
- 一般函数申明的时候抛出的异常是chenckedException
- 覆盖父类某方法的子类方法不能抛出比父类方法更多的异常,所以,有时设计父类的方法时会声明抛出异常,但实际的实现方法的代码却并不抛出异常,这样做的目的就是为了方便子类方法覆盖父类方法时可以抛出异常。
- Cathch异常
- 注意:一个try块可以处理多种类型的异常(最多只有一个catch模块会被执行,与switch不相同)
- 逻辑上一个try后处理多个异常会报错—下面的代码会报错[先catch子类异常,之后再catch父类异常]
- 因为后一个catch不可能被执行到
- try{
- //code
- }catch(Exception e){
- }catch(RuntimeException e){//报错一定不会被执行到
- }
- 自定义异常---就是继承自已有的异常
- 最重要的其实是异常的名字
- class MyException extends Exception{}
- 默认的构造函数
- 1.super() 调用基类的构造函数进行初始化
- 2.super(message)
参考文献:http://www.codeceo.com/article/java-exception-learn.html#0-tsina-1-56987-397232819ff9a47a7b7e80a40613cfe1
转载于:https://www.cnblogs.com/yangyunnb/p/6057646.html
2.Java异常学习相关推荐
- Java异常学习心得
2019独角兽企业重金招聘Python工程师标准>>> Java异常学习心得 本文重在Java中异常机制的一些概念.写本文的目的在于方便我很长时间后若是忘了这 ...
- Java异常学习小结
异常机制(Exception) 什么是异常 实际工作中,遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求.你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要 ...
- 深入浅出详细介绍Java异常,让你茅塞顿开般的感觉
零基础学习之Java异常 概述 基本介绍 Error 代码示例 Exception 代码示例 异常的处理 throw 代码示例 throws 代码示例 try-catch 代码示例 finally块 ...
- 【学习笔记】【Design idea】一、Java异常的设计思想、性能相关、笔记
1.前言: 异常.本该是多么优雅的东西,然而,得全靠自己在零散的信息中汇集. 学习笔记保持更新. 2.教材(参考资料) 其他 ①受检异常与非受检异常:https://www.cnblogs.com/j ...
- 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)
写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持) 参考文章: (1)写给大忙人的ELK最新版6.2.4学习笔记-Logstash ...
- 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)...
接前一篇CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南,继续对ELK. logstash官方最新文档https://www.elastic.co/g ...
- java学习(137):java异常初识
//java异常初识 public class test78 {public static void main(String[] args) {countArraylength( -1 );}publ ...
- Java异常处理学习笔记(抛出、捕获、finally、异常传播、NPE、断言、日志)
Java中的异常是什么? Java异常本质上一种class,继承关系如下图所示,Error是严重的错误,程序无能为力,RuntimeException是在运行过程中发生的异常,其余的异常在编写程序的时 ...
- Java基础学习第十八讲:Java异常
Java异常 Java 中的异常(Exception)又称为例外,是一个在程序执行期间发生的事件,它中断正在执行程序的正常指令流.为了能够及时有效地处理程序中的运行错误,Java中引入了异常类的概念. ...
最新文章
- R语言如何将字符串转变为命令执行
- Vue2.x通用编辑组件的封装及应用
- SAP OData CSRF token的后台验证源代码
- dump文件解析之探索.Net的内存
- 【Python CheckiO 题解】Right to Left
- C/C++混淆点-逗号运算符
- 对刚接触oracle的人比较有用的一些工具 zt
- 英语总结系列(二十七):重复就是力量
- Simple:Press
- 巧用Linux 命令来拆分Windows下的大文件
- python中文分词与词云画像_使用Python绘制肖像词云
- mysql ssh 导入时注意问题
- Android界面布局基本属性
- 为什么物理隔离的网络,也会中毒?怎么进行防护?
- 安装linux后找不到系统文件夹,安装ubuntu时“没有定义根文件系统”错误
- word转网页html,Word转网页html
- 随手笔记--为对象增加新的属性,拼接多个对象
- springboot实现微信模板消息推送
- GAMIT重新编译及升级
- itext给已有pdf添加页眉页脚
热门文章
- 基于matlab的fisher线性判别及感知器判别_Deep Domain Adaptation论文集(一):基于label迁移知识...
- android studio中连接夜神报错 adb server version doesn't match this client
- 若依 v4.6.1 后台 排除log4j
- 修改aconda镜像服务器,Jupyter安装链接aconda的实现方法
- l293d电机驱动原理_一文搞懂步进电机特性、原理及驱动器设计
- map和foreach的区别和应用场景_浅析项目中常用的 VO、DTO、DO、PO的概念、区别和用处...
- led灯条串联图_飞利浦32寸LED液晶显示器故障维修记
- “DNS隧道”盗号木马分析——类似hjack偷密码然后利用dns tunnel直传数据发送出去...
- 浦东新区2019年下半年部分街镇社区工作者和部分单位编外人员公开招聘考试大纲...
- 深入探究Spark -- 了解Executor和参数配置