软件构造第六次学习博客——第4.5章知识点总结

软件构造第六次学习博客——第4.5章知识点总结
1.可维护性的度量指标
(1)代码控制流执行路径的数量。
(2)代码行数。
(3)可维护性指数:根据循环复杂度、代码行数、注释密度等计算的一个指数。
(4)继承的层数。
(5) 类之间的耦合度。
(6) 单元测试覆盖度。

2.正则语法、正则表达式
首先要注意,“\”这个字符在java里是转义字符,在正则语言里也是转义字符,这就导致了“\”是java转义字符,"\“是java斜杠、java中正则语言的转义字符,”\\"才是java正则语言的斜杠。
软件构造第六次学习博客——第4.5章知识点总结

java.util.regex 包主要包括以下三个类:

Pattern 类:
pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。

Matcher 类:
Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。

PatternSyntaxException:
PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

Matcher方法:
软件构造第六次学习博客——第4.5章知识点总结
软件构造第六次学习博客——第4.5章知识点总结

3.健壮性、正确性
健壮性:系统在不正常输入或不正常外部条件下仍能够表现正常的程度。
要处理未期望的行为和错误终止,要准确、无歧义的向用户全面展示错误信息,这些错误信息有助于debug。
要考虑用户的各种行为、恶意攻击、极端情况,尽量封闭细节实现。
正确性:就是程序在正确输入下是正确的、严格按照spec的要求来的,是最重要的质量指标。

4.Java的异常处理相关支持类
①Throwable(java.lang)
它是Exception和Error的父类,只有Throwable对象可以被虚拟机、throw语句抛出。
setStackTrace()、getStackTrace()、printStackTrace()可以存储、获取、打印堆栈快照信息
initCause()、getCause()可以存储、获取异常发生的原因(也是一个Throwable对象)
getMessage、getLocalMessage可以获取错误详细信息,其中后者可以被重新,获得一些本地化处理后的错误详细信息。

②Error
Throwable的子类,表示不应该被捕获的严重错误,一般表示一些反常的情况,程序应该尽量取避免他们,而不是捕获、处理。

③Exception
Throwable的子类,暗示程序可能会需要在程序中去捕获他们,其中RuntimeException不是受查异常,其他都是受查异常。

④RuntimeException
通常是由程序员在程序中的不当处理导致的,可以避免。比如数组越界、null、除零错误、参数错误。

5.finally
这个语句跟在catch(){}的后面,无论是否发生异常,都会执行。
finally执行的必要条件:虚拟机没有被关闭,线程没有被打断、try中的所有控制转移之前的语句全部执行完毕。