当前位置: 首页 > news >正文

断言的用途

代码中,我们经常会用到assert;

assert的作用很让人迷惑。

事实上,在开发完成之后,上线,assert会被删除,人工删除。

因为assert的本质是程序发出exit()信号,强行中断程序执行。

但实际上,程序应该是一个鲁棒的,能够处理这种异常的。起码,他要能够收集这种异常。

比如一个工业软件,机器正在嘎吱嘎吱的运转,遇到了assert,直接卡死。机器上面的齿轮还在转动,把人的手剁了。

assert在我的理解里,应该是作为一个开发过程中的产物。

不是用来偷懒的。比如一个复杂的逻辑,想不到会不会发生某种场景,就用个assert。

应该是一个中间产物。这个我就不再谈了。

assert放在函数入口进行函数检查。这是不行的。如果函数输入不符合要求,应该raise error.

有可能有段逻辑太复杂了,实在想不到输出,可以用assert检查一下范围。但我觉得也不行。

我甚至觉得一个程序里面,不应该有assert。assert不涉及逻辑,只是在给自己用。有可能有问题的地方,应该raise error。

assert 更多的像是自我测试,检查自己程序的结果,这样会比较好。用在UT上。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • asyncio模块学习
  • webrtc学习笔记2
  • Dubbo服务自动Web化之路
  • CPU的功能和基本结构
  • 优思学院|六西格玛实施关键:如何整合定性与定量数据
  • 10-使用sentinel流控
  • 免费Excel数据批量转Word工具
  • Affine Transformations仿射变换
  • Android的日志工具Log
  • 负载均衡---相关概念介绍(一)
  • 华为AR1220配置GRE隧道
  • 国外有哪些好用的AI工具?
  • 【MySQL】索引和事务
  • SQLite 创建表
  • Linux | Linux开发工具链全攻略:yum、vim、gcc/g++、GDB、Makefile与git版本控制
  • ----------
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • CSS居中完全指南——构建CSS居中决策树
  • eclipse的离线汉化
  • Linux CTF 逆向入门
  • Netty源码解析1-Buffer
  • QQ浏览器x5内核的兼容性问题
  • SQLServer插入数据
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 理清楚Vue的结构
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 温故知新之javascript面向对象
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • "无招胜有招"nbsp;史上最全的互…
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Oracle)SQL优化技巧(一):分页查询
  • (十)T检验-第一部分
  • (一) 初入MySQL 【认识和部署】
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)EOS中账户、钱包和密钥的关系
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转载)PyTorch代码规范最佳实践和样式指南
  • . NET自动找可写目录
  • ./configure,make,make install的作用(转)
  • .gitignore文件—git忽略文件
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET 读取 JSON格式的数据
  • .NET 发展历程
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET中两种OCR方式对比
  • ?.的用法
  • @media screen 针对不同移动设备
  • @我的前任是个极品 微博分析
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • []C/C++读取串口接收到的数据程序
  • [383] 赎金信 js
  • [C++]:for循环for(int num : nums)
  • [C++基础]-入门知识