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

健壮性:系统在不正常输入或不正常外部环境下仍能够表现正常的程度
即错误输入,优雅退出。让用户更方便,出错也可以容忍,程序内部已有容错机制 。
正确性:程序按照spec加以执行的能力,是最重要的质量指标!
正确输入,正确输出。让开发者变得更容易:用户输入错误,直接结束。

二、error and exception

内部错误(error):程序员通常无能为力,一旦发生,想办法让程序优雅的结束.

异常(exception):你自己程序导致的问题,可以捕获、可以处理.

三、异常处理

  • Declaring exceptions (throws) 声明“本方法可能会发生XX异常”
  • Throwing an exception (throw) 抛出XX异常
  • Catching an exception (try, catch, finally) 捕获并处理XX异常
  • Unchecked异常也可以使用throws声明或try/catch进行捕获,但大多数时候是不需要的,也不应该这么做——掩耳盗铃,对发现的编程错误充耳不闻。

如何区分checked exception和unchecked exception?

  • 如果客户端可以通过其他的方法恢复异常,那么采用checked exception;

    如果客户端对出现的这种异常无能为力,那么采用unchecked exception;

  • 四、Declaring Checked Exceptions by throws

  • “异常”也是方法和client端之间spec的一部分,在post-condition中刻画

Construction for Robustness and Correctness相关推荐

  1. 软构复习12 Construction for Robustness and Correctness

    12 Construction for  Robustness and Correctness 面向正确性与健壮性的软件构造 健壮性和正确性 Robustness 健壮性:系统在不正常输入或不正常外部 ...

  2. 7.1 Robustness and Correctness健壮性与正确性

    7.1 Robustness and Correctness健壮性与正确性 1 什么是健壮性和正确性 2 怎么衡量健壮性和正确性 3 这章的目的 1.What are Robustness& ...

  3. Robustness Correctness

    Robustness Robustness(鲁棒性/健壮性): 系统 或组件在存在无效输入或压力环境条件时可以正确运行的程度 鲁棒性编程关注异常终止和异常活动的处理 Robustness princi ...

  4. 哈工大软件构造期末复习1

    Chapter 1: Views and Quality Objectives of Software Construction 1.1 Multi-Dimensional Views of Soft ...

  5. 哈工大软件构造笔记1

    1.1Multi-dimensional software views 1.软件构造中的多维视图 ·Moment维度关注于程序在某一时刻的表现,而Period关注的是程序在一段时间内的表现. ·Bui ...

  6. 软件构造的视图与质量指标

    软件构造的实质:Transformation between different views(不同视图之间的转换) Multi-dimensional software views 按阶段分:buil ...

  7. 2022哈尔滨工业大学 软件构造期末复习 一

    Chapter1 软件构造基础软件系统三维度 Build-time&Run-time Code-level&Component-level Moment&period 重点版: ...

  8. (2019春)软件构造:雨课堂试卷(第7章)

    目录 7-1 健壮性与正确性 单选题 第1题 1分 填空题 第2题 3分 多选题 第3题 2分 多选题 第4题 2分 多选题 第5题 2分 填空题 第7题 1分 填空题 第8题 2分 7-2 错误与异 ...

  9. (2019春)软件构造:雨课堂试卷(五)(第7章)

    文章目录 7-1 健壮性与正确性 单选题 第1题 1分 填空题 第2题 3分 多选题 第3题 2分 多选题 第4题 2分 多选题 第5题 2分 多选题 第6题 2分 填空题 第7题 1分 填空题 第8 ...

最新文章

  1. 4个做管理后才知道的秘密
  2. 浏览器崩溃时提示137错误
  3. python怎么画小海龟_Python 海龟 turtle 画图实战任务(一):让小海龟留下Z字形的足迹以及绘制一个小于号<...
  4. 解读GAN及其 2016 年度进展
  5. C语言 | 基于MPU6050的卡尔曼滤波算法(代码类)
  6. Method-Swizzling实战-实现iOS原生网络请求性能采集
  7. Myeclipse 安装所有插件
  8. Vue----常见面试题
  9. 史上最强GAN:训练费10万起,现在免费体验,画风鬼畜又逼真
  10. java 阻塞队列介绍
  11. python学习笔记之读取pdf文件库pdfplumber(一)
  12. 利用jieba对已爬取好的中国地名信息进行分词
  13. phpnow运行本地php文件,使用PHPnow搭建本地wordpress
  14. Dell服务器开启CPU虚拟化
  15. CTF-命令执行漏洞
  16. 几种非接触涂层测厚方法原理对比
  17. sugarnms如何快速实现网管软件定制开发?
  18. 韵脚与押韵的练习(十三韵)
  19. 智慧物业大数据可视化平台
  20. 【图解】AC97、HD音效卡前置音频线的接法

热门文章

  1. Cooperative Driving Dataset (CODD)
  2. pytorch实现循环神经网络实验
  3. HDBaseT解决当务之急!
  4. php怎么会乱码,php中汉字乱码怎么办
  5. 【DP】 FZU 2204 7 成环
  6. 真实评测:全球卫星地图哪个最清晰?
  7. 本科毕业论文查重标准是什么?如何判定的?
  8. 【郝斌老师数据结构学习笔记 day 6】
  9. VC++ 获取Revit元素的几何信息
  10. 计算机基础指法,计算机的基础知识及指法.ppt