201671010140. 2016-2017-2 《Java程序设计》java学习第九周
第七章:《异常,断言和日志》知识点小结
本周,进行了对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的异常处理机制,使得程序更好维护,如果掌握好这部分知识,熟练运用,无疑会成为我们编译程序的帮手。
最新文章
- centos7的使用
- python中list作为全局变量无需global声明的原因
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数005·graphics-obj,基本绘图单元,包括线段、矩形、椭圆、圆形
- WebApp遇到的一些坑
- 【Python3】SMTP发送邮件
- sort merge join,hash join,netsloop join
- Java文件末尾追加字符串
- Jquery 学习插件第一天
- EF 多线程插入 Insert into DbContext Multithreading
- MySQL--连接属性
- jQuery形式可以计算,它包含了无线电的变化价格,select价格变化,删除行动态计算加盟
- 织梦CMS去广告方法 for DedeCMS V5.7
- tensorflow dropout函数应用
- Beauty Contest 凸包+旋转卡壳法
- Spring boot加载REACTIVE源码分析
- 清除DNS缓存(解决能上QQ但是无法上网页问题)
- 07、RDD持久化
- JavaScript 设计模式的七大原则(未完成)
- 浅谈C#中的 async await 以及对线程相关知识的复习
- mysql两列合成一列
热门文章
- luarocks 安装
- c++重在运算符
- python time模块 sys模块 random模块
- Asp.net Mvc 过滤器执行顺序
- (OPC Client .NET 开发类库)网上很多网友都有提过,.NET开发OPC Client不外乎下面三种方法
- git log 中文乱码的解决方案
- [转载]Linux驱动mmap内存映射
- (转)Inno Setup入门(二)——修改安装过程中的图片
- 将h264和aac码流合成flv文件
- mysql 数据库 自动截取数据的问题---mysql的sql_model的四种模式:宽松模式、严格模式