第七章:《异常,断言和日志》知识点小结

      本周,进行了对Java中的异常处理的了解学习,以下是部分所得。

一.未检查异常与已检查异常的区别:

未检查异常处理方法:1、捕获2、继续抛出3、不处理。

已检查异常处理方法:1、继续抛出,消极的方法,一直可以抛到java虚拟机来处理     

                                     2、用try...catch捕获(注意,对于检查的异常必须处理,或者必须捕获或者必须抛出。

       try-catch语句还可以包括第三部分,就是finally子句。它表示无论是否出现异常,都应当执行的内容。捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得控制流程在转到程序其它部分以前,能够对程序的状态做统一的管理。

二:对异常的处理

积极处理方式;确切知道如何处理的异常应该捕获;

消极处理方式:不知道如何去处理的异常声明抛出。

如果说try-catch是异常事件的积极处理方式,那么throws就是消极处理方式。

(1)一个try区块可以搭配多个catch区块,但catch的排列有一定规则,这跟catch小括号内的异常类有关系。倘若各个catch内的异常类有继承关系,则子类要排在前,父类排在后;若没有继承关系,则自由排列。

(2)如果有段程序code不论是否发生异常,都希望被执行,则可以将code放在finally block内,但是finally区块不能单独存在,必须搭配try-catch使用

三:断言

         断言(assert)语法如下: 1、assert 条件 或者 2、assert 条件:表达式 这两个形式都会对布尔“条件”进行判断,如果判断结果为假(false),说明程序已经处于不正确的状态下,系统则抛出AssertionError,给出警告并且退出。在第二种形式中,“表达式”会传入AssertionError的构造函数中并转成一个消息字符串。在程序运行时,如果关闭了断言功能,程序中的断言语句将不起任何作用。如果打开了断言功能,那么断言条件的值将被计算,如果它的值为false,该语句强抛出一个AssertionError对象。打开方法在实验课上已经掌握(-ea)、

       本周的异常处理学习,在课前自学时,其实理解的并不是很清晰,比如断言,单纯看它的语法,我只是简单把它理解为了一种别样形态的if条件语句,assert语句后的表达式相当于if条件后的执行语句;同时,try-catch也是异曲同工,在课堂深入学习后,对它们有了更深的了解,再结合老师在实验课上带领我们学习的一些例题程序,我尝试在一些存在着异常的程序中,修改代码,使得程序正常运行,从以前的看例题,到现在尝试改动例题,我在小小进步,也希望以后会更好。

java的异常处理机制,使得程序更好维护,如果掌握好这部分知识,熟练运用,无疑会成为我们编译程序的帮手。

最新文章

  1. centos7的使用
  2. python中list作为全局变量无需global声明的原因
  3. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数005·graphics-obj,基本绘图单元,包括线段、矩形、椭圆、圆形
  4. WebApp遇到的一些坑
  5. 【Python3】SMTP发送邮件
  6. sort merge join,hash join,netsloop join
  7. Java文件末尾追加字符串
  8. Jquery 学习插件第一天
  9. EF 多线程插入 Insert into DbContext Multithreading
  10. MySQL--连接属性
  11. jQuery形式可以计算,它包含了无线电的变化价格,select价格变化,删除行动态计算加盟
  12. 织梦CMS去广告方法 for DedeCMS V5.7
  13. tensorflow dropout函数应用
  14. Beauty Contest 凸包+旋转卡壳法
  15. Spring boot加载REACTIVE源码分析
  16. 清除DNS缓存(解决能上QQ但是无法上网页问题)
  17. 07、RDD持久化
  18. JavaScript 设计模式的七大原则(未完成)
  19. 浅谈C#中的 async await 以及对线程相关知识的复习
  20. mysql两列合成一列

热门文章

  1. luarocks 安装
  2. c++重在运算符
  3. python time模块 sys模块 random模块
  4. Asp.net Mvc 过滤器执行顺序
  5. (OPC Client .NET 开发类库)网上很多网友都有提过,.NET开发OPC Client不外乎下面三种方法
  6. git log 中文乱码的解决方案
  7. [转载]Linux驱动mmap内存映射
  8. (转)Inno Setup入门(二)——修改安装过程中的图片
  9. 将h264和aac码流合成flv文件
  10. mysql 数据库 自动截取数据的问题---mysql的sql_model的四种模式:宽松模式、严格模式