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 编程思想笔记(七)——异常相关推荐

  1. Java编程思想笔记(持有对象)

    1.泛型和类型安全的容器       2.基本概念       3.添加一组元素:Arrays.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变参数),并将其转换为一个LIst对 ...

  2. java 编程思想 笔记_java编程思想笔记20170215

    importjava.util.ArrayList;importjava.util.List;public classTest {public static voidmain(String[] arg ...

  3. Java编程思想笔记——并发3

    终结任务 装饰性花园 公园人数共享计数值递增: class Count {private int count = 0;private Random rand = new Random(47);// R ...

  4. JAVA编程思想笔记 : 并发 [ 一 ]

    程序中的所有事物,在任意时刻都只能执行一个步骤. 并发的多面性 并发解决的问题大体上可以分为"速度"和"设计可管理性"两种 并发通常是提高运行在单处理器上的程序 ...

  5. Java编程思想笔记——容器深入研究1

    完整的容器分类法 Java SE5新添加了: 1.Queue接口(LinkedList已经为实现该接口做了修改)及其实现PriorityQueue和各种风格的BlockingQueue. 2.Conc ...

  6. 【Java编程思想笔记】-集合1

    1.为什么要用集合? 一般情况下,数组是保存一组对象(或基本数据类型)最有效的方式.但是数组有着固定的尺寸,而在更一般的情况下,我们在写程序时不知道将需要保存多少个对象,或者是否需要更复杂的存储结构来 ...

  7. Java中的移位操作——Java编程思想笔记

    欢迎转载,转载请务必注明出处: http://blog.csdn.net/alading2009/article/details/39968281 Java中的移位操作包括 <<(无符号左 ...

  8. Java编程思想读书笔记(七)

    点击蓝字 关注我们 今天是端午节,在这里祝大家端午节安康.过节的同时也不要忘记知识储备,今天我 为大家带来了Java编程思想第七节多形性读书笔记.请大家一起品鉴,如果发现里面有啥写的不对的地方,请大家 ...

  9. 《JAVA编程思想》学习笔记:第8章(多态)

    目录 Java编程思想(一)第1~4章:概述 Java编程思想(二)第5章:初始化和清理 Java编程思想(三)第6章:访问权限 Java编程思想(四)第7章:复用类 Java编程思想(五)第8章:多 ...

最新文章

  1. 常用MySQL的命令集锦
  2. C++中内存分配、函数调用和返回值问题
  3. JavaWeb学习总结(一)——JavaWeb开发入门
  4. hive表指定分区字段搜索_Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件...
  5. 蓝牙连接不上车要hfp_科普|蓝牙耳机小知识,这些都不知道难怪你选不到好的蓝牙耳机...
  6. 趣味编程:C#中Specification模式的实现(参考答案 - 下)
  7. mybatis example处理and、or关系的方法
  8. asterisk版本选择
  9. 《TensorFlow技术解析与实战》——1.2 什么是深度学习
  10. python处理excel表格-如何用python处理excel表格
  11. java InputStream读取数据问题【转】http://cuisuqiang.iteye.com/blog/1434416
  12. 开源一个WEB版本GEF,基于SVG的网页流程图框架
  13. WEB前端视频教程网站推荐
  14. triu matlab,matlab triu
  15. 配置urlrewrite不生效
  16. Vue 图片懒加载 v-lazy
  17. python编写beta计算器_|python编写计算器
  18. 【NEO NEXT社区】高校区块链技术分享会——上海交通大学
  19. java 延时队列_Java实现简单延迟队列和分布式延迟队列
  20. Excel怎么设置密码保护工作表

热门文章

  1. js网页文件资源加载器
  2. C/C++如何连接MySQL服务器以及简单加密
  3. html怎么制作附页,HTML和CSS属性的正确书写规范
  4. gcc编译c文件 python.h 未找到
  5. mysql中视图和表的区别及联系_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...
  6. wap打包 本地化 hbuilder_秋收接近尾声 冰城开启秸秆打包、秋整地
  7. php mysql 持久连接_PHP MySQL连接持久性
  8. 打孔怎么定位_电视机挂架怎么安装
  9. opengl es 实现旋转的三角形
  10. 计算机组成原理双端口存储器实验,计算机组成原理双端口存储器实验报告.doc...