美文网首页2016技术笔记
2016笔记——断言

2016笔记——断言

作者: 满庭花醉三千客 | 来源:发表于2018-07-27 11:21 被阅读6次

程序崩溃不可怕,可怕的是程序没有Crash而是运行在一个不稳定的状态下,如果程序还操作了数据,那么带来的危害是灾难性的。

所以,我们应该让程序Crash掉,尽量制造Crash的BUG,减少没有Crash的BUG,如果有可能,将没有Crash掉的BUG转换成Crash的BUG以便查找。

NSAssert,他的名字叫做“断言”。断言是指在开发期间使用的,让程序在运行时进行自检的代码。断言为真,则表明程序运行正常,而断言为假则意味着它已经在代码中发现了意料之外的错误。

断言对于大型的复杂的程序或者可靠性要求极高的程序来说极为重要。当断言为假的时候,几乎所有的系统的处理策略都是让程序死掉,方便你知道,程序出现了问题。

断言其实就是“防御式编程”的常用的手段,防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。断言能够有效的保证数据的正确性,防止因为脏数据让整个程序运行在不稳定的状态中。

当断言条件为假时,捕获器会打印断言信息和当前的类名、方法名等信息,然后抛出一个NSInternalInconsistencyReception异常,让整个程序崩溃掉,并且在当前线程的断言捕获器中执行handleFailureInMethod:object:file:lineNumber:description: 以上信息为输出。

看一个Demo:

屏幕快照 2016-03-02 16.49.09.png

运行时的效果:

屏幕快照 2016-03-02 16.50.11.png

错误精确到某一行,实在不错哦

此外,涉及到self.block要注意避免循环引用问题,此时不可用NSAssert来作为断言了,要使用NSCAssert作为断言了:

屏幕快照 2016-03-02 16.55.21.png

加油,多接触,才能更厉害~

相关文章

  • 2016笔记——断言

    程序崩溃不可怕,可怕的是程序没有Crash而是运行在一个不稳定的状态下,如果程序还操作了数据,那么带来的危害是灾难...

  • AssertJ 断言框架笔记

    AssertJ 断言框架笔记 [TOC] https://github.com/joel-costigliola/...

  • 学习笔记-断言

    1. 元素是否存在 2. 元素属性是否正确 3. 查找元素文本 4. hamcrest断言 Hamcrest是用于...

  • 客观断言和主观断言 阅读抄300

    客观断言和主观断言 在说明“结论”之前,我们先来区分客观断言和主观断言。客观断言(objective claim)...

  • 《我能让你睡得香-----一》

    2016-12-22原文:“春生夏长,秋收冬藏”笔记: 2016-12-22原文:◎春季:夜睡早起笔记: 2016...

  • Jmeter响应断言详解

    一、添加响应断言 选中需要进行断言的Sampler,右键添加 “断言” → “响应断言”。参数配置如下: 适用于:...

  • jmeter检查点

    1、添加响应断言,右键点击我们的“登录”页面---->添加---->断言---->响应断言 2. 设置响应断言 3...

  • 自学Swift之断言 assertion

    断言概念: 官方概念太无聊,并且冗余... 断言(assertion) 是一个全局函数 断言理解: 我理解的断言(...

  • Mock那些事儿(3):Mock的断言

    Mock的断言与unittest的断言不同,unittest的断言是判断结果是否正确,而mock的断言主要...

  • TestNG断言

    TestNG中的Assertion,也是断言。断言是测试中最难写的部分。 Assert类(硬断言) 断言类是Ass...

网友评论

    本文标题:2016笔记——断言

    本文链接:https://www.haomeiwen.com/subject/damwmftx.html