assert关键字用法简单,但是使用assert往往会让你陷入越来越深的陷阱中。应避免使用。总结了以下原因:
1、用assert代替if是陷阱之二。assert的判断和if语句差不多,但两者的作用有着本质的区别:assert关键字本意上是为测试 调试程序时使用的,但如果不小心用assert来控制了程序的业务流程,那在测试调试结束后去掉assert关键字就意味着修改了程序的正常的逻辑。
2、assert断言失败将面临程序的退出。这在一个生产环境下的应用是绝不能容忍的。一般都是通过异常处理来解决程序中潜在的错误。但是使用断言就很危险,一旦失败系统就挂了。
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。
Map<Integer, String> m = new Map<Integer, String>(); // Define a new map
m.put(1, 'First entry'); // Insert a new key-value pair in the map
m.put(2, 'Second entry'); // Insert a new key-value pair in the map
System.assert(m.containsKey(3)); // Assert that the map contains a key
String value = m.get(2); // Retrieve a value, given a particular key
System.assertEquals('Second entry1', value);
Set<Integer> s = m.keySet(); // Return a set that contains all of the keys in the map

 System.assert(m.containsKey(3));

==>System.AssertException: Assertion Failed  因为3 不在key范围内,因此出错,即程序中断
System.assertEquals('Second entry1', value);
 ==>System.AssertException: Assertion Failed: Expected: Second entry1, Actual: Second entry  因为value 和 Secong entry1 不相等

 

 

转载于:https://www.cnblogs.com/bandariFang/p/9662011.html

062_Apex使用Assert相关推荐

  1. Python3 try-except、raise和assert解析

    20220221 案例 def product(x):result = 1print(x)count = 0for i in x:try:result *= float(i)except Except ...

  2. C++中#error/assert/static_assert的区别及使用

    C++ 语言支持可帮助您调试应用程序的三个错误处理机制:#error 指令.static_assert 关键字和 assert (CRT) 宏.所有的三种机制都会发出错误消息. #error可看做预编 ...

  3. Java assert关键字

    一.概述 在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,assert关键字是从JAVA SE 1 ...

  4. C++宏assert()

    断言,是宏,而非函数.assert 宏的原型定义在 <assert.h>(C).<cassert>(C++)中,其作用是如果它的条件返回错误,则终止程序执行.可以通过定义 ND ...

  5. 函数assert()详解

    函数assert()详解: 断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式.预处理器产生测试该断言的代码,如果断言不为真, ...

  6. Python assert断言函数及用法

    Python assert断言函数及用法 Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Pyt ...

  7. python的assert作用

    python的assert作用 用处: 检查条件,不符合就终止程序,并且提示错误原因 代码: a=-1 #报错 assert (a>0),"a超出范围" 效果: Traceb ...

  8. assert python 中断_Python这十大装B语法!你不会还没有听过吧?

    Python 是一种简单思想的语言的代表,相对来说其语法简单,很容易上手.不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了.本文精心筛选了 Python 最能展现语法之精妙的十个知识 ...

  9. Java中的断言(assert)

    为什么80%的码农都做不了架构师?>>>    一.语法形式:     Java2在1.4中新增了一个关键字:assert.在程序开发过程中使用它创建一个断言(assertion), ...

最新文章

  1. python 调用函数内部参数
  2. DuiC 统一配置管理 2
  3. 推荐一个算法/数据结构 可视化(Data structure Visualization) 网站
  4. gsoap写一个c++ webservice
  5. 理解spark闭包以及broadcast(转载)
  6. 通过外部文件覆盖打包的Spring应用程序属性文件
  7. HTTP协议和NDS服务器
  8. Android 进程生命周期 Process Lifecycle
  9. 金立手机又推新品!翻盖手机A326发布 意图复刻经典
  10. 开源字体不香吗?五款 GitHub 上的爆红字体任君选
  11. iOS开发之Quartz2D 二:绘制直线,曲线,圆弧,矩形,椭圆,圆
  12. 男友问别人:你裙子里穿什么了?
  13. HarmonyOS开源第三方组件 —— B站开源弹幕库引擎的使用
  14. aria2Android服务器教程,Aria2自动更新BT Tracker服务器列表的方法
  15. 挑战华为社招:java工程师都要掌握哪些技术
  16. 菜鸟IT技术杂谈(一)——从多任务系统原理说起
  17. androidの读取短信内容
  18. 用技术赋能城市管理,景联文科技提供城市治理多场景数据采集服务!
  19. 程序封装真的是令人讨厌_网络上最令人讨厌的黑暗模式
  20. POJ3349-Snowflake Snow Snowflakes

热门文章

  1. 主流边缘计算的算法实例
  2. Web3可能没有你想象的那么好
  3. ipad pro_如何关闭iPad Pro
  4. sysinfo结构体
  5. php 发送邮件端口,PHP 使用 PHPMailer 发送邮件
  6. 2022全国职业技能大赛“信息安全管理与评估“--应急响应日志分析解析(高职组)
  7. Python 利用SVM,KNN,随机森林进行预测
  8. 在AI宇宙中流浪的他们,在一张海报中收获了“懂得”
  9. 微信支付API v2与v3的区别
  10. 比较两棵树是否相同(关键词:树/二叉树/相同/相等/完全相同)