【软件构造】面向正确性和健壮性的软件构造小记

本文介绍了面向正确性和健壮性的软件构造,介绍了健壮性和正确性,以及MTBF和MTTF,最后重点介绍了Error和Exception

文章目录

  • 一、什么是健壮性和正确性?
    • 1、健壮性
    • 2、正确性
    • 3、正确性和健壮性的比较
  • 二、MTBF和MTTF
    • 1、MTBF(Mean time between failures)
    • 2、MTBF与MTTF的区别
  • 二、错误Error与异常处理Exception
    • 1、Error与Exception
    • 2、Error(错误)
        • (1)error的种类
        • (2)典型的异常
    • 3、Exception(异常)
        • (1)异常:程序执行中的非正常事件,导致程序无法再按预想的流程执行
        • (2)异常分类:
        • (3)运行时异常RuntimeException
        • (4)其他异常
    • 4、Unchecked Exception和Checked Exception
        • (1)Unchecked Exception和Checked Exception
        • (2)分类
  • 总结


一、什么是健壮性和正确性?

1、健壮性

系统在不正常输入不正常外部情况下仍能够表现正常的程度。

2、正确性

程序按照spec加以执行的能力,是最重要的质量指标

3、正确性和健壮性的比较

【软件构造】面向正确性和健壮性的软件构造小记_第1张图片

二、MTBF和MTTF

1、MTBF(Mean time between failures)

MTBF(Mean time between failures)是指平均故障间隔时间(平均无故障运行时间),是指相邻两次故障之间的平均工作时间。

2、MTBF与MTTF的区别

MTBF用于描述可修复系统的平均无故障运行时间, MTTF(故障前平均时间)描述不可修复系统的故障前平均时间

二、错误Error与异常处理Exception

1、Error与Exception

(1)Error(错误)Java虚拟机无法解决的严重问题。如JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError【栈溢出】和OOM(out of memory),error是严重错误,程序会崩溃。

程序员通常无能为力,一旦发生,想办法让程序优雅的结束。

(2)Exception:其他因为编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针异常、读取不存在的文件,网络连接中断等。

2、Error(错误)

(1)error的种类

用户输入错误、设备错误、物理限制

(2)典型的异常

a、VirtualMachineError:当Java虚拟机坏了,或者耗尽了继续运行所需得资源时抛出。

OutOfMemoryError:当Java虚拟机因为内存不足而无法分配对象时抛出,垃圾收集器无法提供更多的内存。
StackOverflowError:当应用递归太深导致栈溢出时抛出。
InternalError:抛出InternalError表示JVM中发生了一些异常的内部错误。

b、linkageError:一个类依赖于另一个类;但是编译前一个类之后,后一个类发生了不兼容的变化。

NoClassDefFoundError:如果JVM或ClassLoader实例试图加载类的定义,但是找不到定义时抛出。

3、Exception(异常)

(1)异常:程序执行中的非正常事件,导致程序无法再按预想的流程执行

【软件构造】面向正确性和健壮性的软件构造小记_第2张图片
在Java中,exception通常是由Throwable派生出来的。

(2)异常分类:

异常通常分为运行时异常其他异常

运行时异常:由程序员在代码里处理不当造成的
其他异常:由外部原因造成的

(3)运行时异常RuntimeException

一般指编译时出现的逻辑错误,是程序员应该避免出现的异常。

运行时异常属于Unchecked Exception(之后会介绍到)
可以不做处理,因为这类异常很普遍,若处理可能会对程序的可读性和运行效率产生影响。

常见的运行时异常
NullPointerException空指针异常
ArithmeticException数字运算异常
ArrayIndexOutOfBoundsException数组下标越界异常
ClassCastException类型转换异常
NumberFormatException数字格式不正确异常

(4)其他异常

SOLException操作数据库时,查询表可能发生异常
IOException操作文件时发生的异常
等等

4、Unchecked Exception和Checked Exception

(1)Unchecked Exception和Checked Exception

Unchecked Exception:编译器不会检查;可以不处理,编译没问题,但是执行时出现就导致程序错误,代表程序中潜在的bug;从RunTimeException派生出子类型。
Checked Exception:编译器帮助程序员检查你的程序是否已经抛出或处理了可能的异常;必须捕获并指定错误处理器handler,否则编译无法通过;从Exception派生出子类型。

(2)分类

ErrorRuntimeException属于Unchecked Exceptions;其它的属于checked Exceptions


总结

本文介绍了面向正确性和健壮性的软件构造,介绍了健壮性和正确性,以及MTBF和MTTF,最后重点介绍了Error和Exception

你可能感兴趣的:(软件构造,java,开发语言)