java 编程思想笔记(七)——异常
1.什么是异常
java中的异常指的是程序中的异常(不包括硬件异常(内存溢出等)),比如:语法错误(少写分号),除数为0,nullPoint等。
2.为啥需要异常
谁也不想代码在运行的时候,突然程序出现问题了,这个时候就会出现,功能不稳定,数据错误显示等问题,最后导致死机,程序没有响应,开发人员也不知道怎么回事,只能通过日志去排查。所以java对异常的需要是为了解决程序的健壮性或者说鲁棒性。java中的异常不是说有了异常程序就不会出问题,而是可以让程序有异常的时候按照异常的逻辑走完,不会出现宕机等问题。
3.java对异常的解决
3.1java对异常的解决抽象成了一个Throwable异常类,根据具体情况(硬件异常还是程序异常)又分为 Error 和Exception 两个子类,程序异常(Exception)根据运行时异常和非运行是异常分为 RuntimeException 和 非运行时异常(继承Exception的异常)。
3.2 大家都知道类是对拥有相同属性和行为对象的抽象模板,在程序运行过程中必须通过具体的对象才能完成具体任务,这个时候就得说说异常对象的创建了。java异常对象的创建分为两种方式:1.一种是程序运行时环境自动抛出的异常,这些异常不需要我们使用 throw 关键字就可以自己抛出。2:程序员根据具体情况自定义的异常,使用 throw new 异常 的方法抛出异常对象。
3.3 关于java异常类的具体实现以及使用可以查看api;
4.java 异常机制
try {//正常运行代码 } catch (Exception e) {//捕获异常后执行的代码 e.printStackTrace(); } finally {//最终执行(是否有异常) }
4.1 以上就是java 异常机制。个人感觉书上说的太啰嗦。
4.2 除了上面的 try catch finally 外还有两个关键字: throw 和 throws
throw :用于方法体内,抛出 Throwable 类的异常对象。如果抛出的是运行时异常,该方法也必须在方法头部声明抛出的异常类型。调用该方法者也必须捕获处理或者抛出该异常,如果所有方法都没有捕获处理抛出给虚拟机,则由虚拟机处理异常。
throws : 用于方法体声明部分,用来声明可能会抛出的异常类型。如果声明的是运行时异常,则调用该方法的方法必须自己处理或者继续抛出异常。
4.3 throw 和 throws 的区别和联系:
throw 是语句抛出异常一个异常,如: throw new RuntimeException;
throws 是方法抛出一个异常。
很明显,throw 抛出异常后由 throws 转化为方法异常继续抛出
throw 不能单独使用,throws 却可以。
5.用户自定义异常
继承Exception 或者RuntimeException 异常类就可以实现自定义异常。
重新或者覆盖父异常类的方法可以实现自己想要的结果。
通过 new throw myException;来使用异常。
异常总结完了。!!!
转载于:https://www.cnblogs.com/wwyx-xi/p/7389860.html
java 编程思想笔记(七)——异常相关推荐
- Java编程思想笔记(持有对象)
1.泛型和类型安全的容器 2.基本概念 3.添加一组元素:Arrays.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变参数),并将其转换为一个LIst对 ...
- java 编程思想 笔记_java编程思想笔记20170215
importjava.util.ArrayList;importjava.util.List;public classTest {public static voidmain(String[] arg ...
- Java编程思想笔记——并发3
终结任务 装饰性花园 公园人数共享计数值递增: class Count {private int count = 0;private Random rand = new Random(47);// R ...
- JAVA编程思想笔记 : 并发 [ 一 ]
程序中的所有事物,在任意时刻都只能执行一个步骤. 并发的多面性 并发解决的问题大体上可以分为"速度"和"设计可管理性"两种 并发通常是提高运行在单处理器上的程序 ...
- Java编程思想笔记——容器深入研究1
完整的容器分类法 Java SE5新添加了: 1.Queue接口(LinkedList已经为实现该接口做了修改)及其实现PriorityQueue和各种风格的BlockingQueue. 2.Conc ...
- 【Java编程思想笔记】-集合1
1.为什么要用集合? 一般情况下,数组是保存一组对象(或基本数据类型)最有效的方式.但是数组有着固定的尺寸,而在更一般的情况下,我们在写程序时不知道将需要保存多少个对象,或者是否需要更复杂的存储结构来 ...
- Java中的移位操作——Java编程思想笔记
欢迎转载,转载请务必注明出处: http://blog.csdn.net/alading2009/article/details/39968281 Java中的移位操作包括 <<(无符号左 ...
- Java编程思想读书笔记(七)
点击蓝字 关注我们 今天是端午节,在这里祝大家端午节安康.过节的同时也不要忘记知识储备,今天我 为大家带来了Java编程思想第七节多形性读书笔记.请大家一起品鉴,如果发现里面有啥写的不对的地方,请大家 ...
- 《JAVA编程思想》学习笔记:第8章(多态)
目录 Java编程思想(一)第1~4章:概述 Java编程思想(二)第5章:初始化和清理 Java编程思想(三)第6章:访问权限 Java编程思想(四)第7章:复用类 Java编程思想(五)第8章:多 ...
最新文章
- 常用MySQL的命令集锦
- C++中内存分配、函数调用和返回值问题
- JavaWeb学习总结(一)——JavaWeb开发入门
- hive表指定分区字段搜索_Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件...
- 蓝牙连接不上车要hfp_科普|蓝牙耳机小知识,这些都不知道难怪你选不到好的蓝牙耳机...
- 趣味编程:C#中Specification模式的实现(参考答案 - 下)
- mybatis example处理and、or关系的方法
- asterisk版本选择
- 《TensorFlow技术解析与实战》——1.2 什么是深度学习
- python处理excel表格-如何用python处理excel表格
- java InputStream读取数据问题【转】http://cuisuqiang.iteye.com/blog/1434416
- 开源一个WEB版本GEF,基于SVG的网页流程图框架
- WEB前端视频教程网站推荐
- triu matlab,matlab triu
- 配置urlrewrite不生效
- Vue 图片懒加载 v-lazy
- python编写beta计算器_|python编写计算器
- 【NEO NEXT社区】高校区块链技术分享会——上海交通大学
- java 延时队列_Java实现简单延迟队列和分布式延迟队列
- Excel怎么设置密码保护工作表
热门文章
- js网页文件资源加载器
- C/C++如何连接MySQL服务器以及简单加密
- html怎么制作附页,HTML和CSS属性的正确书写规范
- gcc编译c文件 python.h 未找到
- mysql中视图和表的区别及联系_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...
- wap打包 本地化 hbuilder_秋收接近尾声 冰城开启秸秆打包、秋整地
- php mysql 持久连接_PHP MySQL连接持久性
- 打孔怎么定位_电视机挂架怎么安装
- opengl es 实现旋转的三角形
- 计算机组成原理双端口存储器实验,计算机组成原理双端口存储器实验报告.doc...