assert

论 Lua错误处理 之 error assert pcall xpcall 函数的使用和区别

我是研究僧i 提交于 2020-01-18 12:29:31
error (message [, level]) 在Lua中使用error函数抛出错误信息,通常包含调用堆栈信息以及错误提示信息! 第一个参数message为自定义的错误提示信息。 第二个参数为可选的出错位置信息,默认为1,即为调用error函数的位置;2即为调用error函数的函数的位置;0则不打印出错位置信息! assert (v [, message]) assert是error的包装,将判断之类的操作包装了进去!所以使用assert比之使用error更为方便! 第一个参数为nil或判断的结果为false的时候抛出错误,中止运行,调用error函数;否则继续执行! 第二个参数为可选的错误提示信息,如果提供这个参数,调用error函数的时候则打印出message;否则使用默认的"assertion failed!"。 来源: https://www.cnblogs.com/welcome-to-fang-qi-blog/p/12208553.html

Visual C++中的异常处理浅析

心已入冬 提交于 2020-01-16 00:23:37
Visual C++中的异常处理浅析 作者: 宋宝华 出处: 天极网 责任编辑: 方舟   Visual C++提供了对C语言、C++语言及MFC的支持,因而其涉及到的异常(exception)处理也包含了这三种类型,即C语言、C++语言和MFC的异常处理。除此之外,微软对C和C++的异常处理进行了扩展,提出了结构化异常处理(SEH)的概念,它支持C和C++(与之相比,MFC异常处理仅支持C++)。   一个典型的异常处理包含如下几个步骤:   (1)程序执行时发生错误;   (2)以一个异常对象(最简单的是一个整数)记录错误的原因及相关信息;   (3)程序检测到这个错误(读取异常对象);   (4)程序决定如何处理错误;   (5)进行错误处理,并在此后恢复/终止程序的执行。   C、C++、MFC及SEH在这几个步骤中表现出了不同的特点。本文将对这四种异常处理进行介绍,并对它们进行对比分析。本文例程的调试平台为Visual C++6.0,操作系统为Windows XP,所有程序均调试通过。   在进入正式的讲解之前,先说几句废话。许多的编程新手对异常处理视而不见,程序里很少考虑异常情况。一部分人甚至根本就不考虑,以为程序总是能以正确的途径运行。譬如我们有的程序设计者调用fopen打开一个文件后,立马就开始进行读写操作,根本就不考虑文件是否正常打开了。这种习惯一定要改掉

Visual C++中的异常处理浅析[轉]

China☆狼群 提交于 2020-01-15 22:59:45
Visual C++ 提供了对 C 语言、 C++ 语言及 MFC 的支持,因而其涉及到的异常( exception )处理也包含了这三种类型,即 C 语言、 C++ 语言和 MFC 的异常处理。除此之外,微软对 C 和 C++ 的异常处理进行了扩展,提出了结构化异常处理( SEH )的概念,它支持 C 和 C++ (与之相比, MFC 异常处理仅支持 C++ )。 一个典型的异常处理包含如下几个 步骤 : (1)程序执行时发生错误; (2)以一个异常对象(最简单的是一个整数)记录错误的原因及相关信息; (3)程序检测到这个错误(读取异常对象); (4)程序决定如何处理错误; (5)进行错误处理,并在此后恢复/终止程序的执行。 C、C++、MFC及SEH在这几个步骤中表现出了不同的特点。本文将对这四种异常处理进行介绍,并对它们进行对比分析。本文例程的调试平台为Visual C++6.0 ,操作系统为 Windows XP ,所有程序均调试通过。 在进入正式的讲解之前,先说几句废话。许多的编程新手对异常处理视而不见,程序里很少考虑异常情况。一部分人甚至根本就不考虑,以为程序总是能以正确的途径运行。譬如我们有的程序设计者调用fopen打开一个文件后,立马就开始进行读写操作,根本就不考虑文件是否正常打开了。这种习惯一定要改掉,纵使你再不愿意!这是软件健壮性的需要!异常处理不是浪费时间!

(Java)断言

社会主义新天地 提交于 2020-01-15 15:01:52
断言就是肯定某一个结果的返回值是正确的,如果最终此结果的返回值是错误的,则通过断言检查肯定会提示错误信息 断言格式: assert boolean 表达式; assert boolean 表达式 : 详细信息 如果以上 boolean 表达式的结果为 true,则什么错误信息都不会提示; 如果为 false,则会提示错误信息; 如果没有声明详细信息的描述,则系统会使用默认的错误信息提示方式。 public class Test { public static void main ( String [ ] args ) { int x [ ] = { 1 , 2 , 3 } ; //定义一个数组,长度为 3 assert x . length == 0 ; //此处断言数组长度为0,肯定是错误的 } } 这个程序中,数组 x 的长度是不可能为 0 的,所以此处的断言结果是错误的,但此时运行程序并不会得到任何的结果,因为 Java 在设计此关键字时,考虑到了系统的作用,为了防止某些用户使用 assert 作为关键字,所以在程序正常运行时断言并不会起任何作用,如果要想让断言起作用,需要在 Java 运行时加入以下参数: - enableassertions 也可以简写为 - ea 编译程序:javac Test . java 验证程序:java - ea Test

java 实现敏感词(sensitive word)工具详解使用说明

余生长醉 提交于 2020-01-15 01:13:59
sensitive-word 平时工作中,只要涉及到用户可以自由发言(博客、文档、论坛),就要考虑内容的敏感性处理。 sensitive-word 基于 DFA 算法实现的高性能敏感词工具。工具使用 java 实现,帮助我们解决常见的问题。 特性 6W+ 词库,且不断优化更新 基于 DFA 算法,性能较好 基于 fluent-api 实现,使用优雅简洁 支持敏感词的判断、返回、脱敏等常见操作 支持全角半角互换 支持英文大小写互换 快速开始 准备 JDK1.7+ Maven 3.x+ Maven 引入 <dependency> <groupId>com.github.houbb</groupId> <artifactId>sensitive-word</artifactId> <version>0.0.4</version> </dependency> api 概览 SensitiveWordBs 作为敏感词的引导类,核心方法如下: 方法 参数 返回值 说明 newInstance() 无 引导类 初始化引导类 contains(String) 待验证的字符串 布尔值 验证字符串是否包含敏感词 findAll(String) 待验证的字符串 字符串列表 返回字符串中所有敏感词 replace(String, char) 使用指定的 char 替换敏感词 字符串 返回脱敏后的字符串

结巴分词 java 高性能实现,是 huaban jieba 速度的 2倍

ε祈祈猫儿з 提交于 2020-01-15 01:12:31
Segment Segment 是基于结巴分词词库实现的更加灵活,高性能的 java 分词实现。 变更日志 创作目的 分词是做 NLP 相关工作,非常基础的一项功能。 jieba-analysis 作为一款非常受欢迎的分词实现,个人实现的 opencc4j 之前一直使用其作为分词。 但是随着对分词的了解,发现结巴分词对于一些配置上不够灵活。 有很多功能无法指定关闭,比如 HMM 对于繁简体转换是无用的,因为繁体词是固定的,不需要预测。 最新版本的词性等功能好像也被移除了,但是这些都是个人非常需要的。 所以自己重新实现了一遍,希望实现一套更加灵活,更多特性的分词框架。 而且 jieba-analysis 的更新似乎停滞了,个人的实现方式差异较大,所以建立了全新的项目。 Features 特点 基于 DFA 实现的高性能分词 允许用户自定义词库 支持返回词性 默认关闭,惰性加载,不对性能和内存有影响。 快速入门 准备 jdk1.7+ maven 3.x+ maven 引入 <dependency> <groupId>com.github.houbb</groupId> <artifactId>segment</artifactId> <version>${最新版本}</version> </dependency> 使用示例 相关代码参见 SegmentBsTest.java 获取分词

python的pytest框架

白昼怎懂夜的黑 提交于 2020-01-14 21:57:19
pytest 1)简介 官方文档地址:http://www.pytest.org/en/latest/getting-started.html pytest中定义测试用例有三种方式:   1)兼容unittest,已有的unittest库和文件都可以直接进行调用;   2)可以基于简单的类进行定义,如果一个类里边没有初始化方法并且以test开头,系统便会认为这是一个测试用例(不需要继承,直接定义就行)   3)可以直接定义测试函数来定义测试用例 2)安装:   pip install pytest 3)修改配置:    例1: import pytest def func(x): return x + 1 def test_answer(): assert func(3) == 5 if __name__ == "__main__": pytest.main() 例2:(修改运行方式后,编写代码生效) import pytest def func(x): return x + 1 def test_answer(): assert func(3) == 5 class TestFunc: def test_answer(self): assert func(3) == 5 if __name__ == "__main__": pytest.main() 4

Junit入门

隐身守侯 提交于 2020-01-14 20:07:51
什么是Junit JUnit是一个Java语言的单元测试框架。通常我们写完代码想要测试这段代码的正确性,那么必须新建一个类,创建一个 main() 方法编写测试代码。如果需要测试的代码很多,就要将测试代码全部写在一个 main() 方法里面大大增加了测试的复杂度。而 Junit 能很好的解决这个问题,简化单元测试,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。 Junit安装 1.下载 Junit jar 包   百度网盘: 点我下载 提取码:ojbo 2.下载完成之后,在项目中将 下载的 jar 包导入进去,然后右键,Build--->Add Build Path--->Add External JARs 即可。 Junit常用注解   1.@Test: 测试方法     a)(expected=XXException.class)如果程序的异常和XXException.class一样,则测试通过     b)(timeout=100)如果程序的执行能在100毫秒之内完成,则测试通过   2.@Ignore: 被忽略的测试方法:加上之后,暂时不运行此段代码   3.@Before: 每一个测试方法之前运行   4.@After: 每一个测试方法之后运行   5.@BeforeClass: 方法必须必须要是静态方法(static

Assert in Try..Catch block is caught

浪子不回头ぞ 提交于 2020-01-14 07:35:48
问题 Just came across some interesting behavior - Assert being caught by Catch block. List<Decimal> consArray = new List<decimal>(); try { Decimal d; Assert.IsTrue(Decimal.TryParse(item.Value, out d)); consArray.Add(d); } catch (Exception e) { Console.WriteLine(item.Value); Console.WriteLine(e); } Assert throws AssertFailedException and its caught by catch . Always thought that if Assert fails then test is failed and consecutive execution is aborted. But in that case - test moves along. If nothing

java的mock测试框架

自闭症网瘾萝莉.ら 提交于 2020-01-14 07:24:01
  在做单元测试的时候,有的时候用到的一些类,我们构造起来不是那么容易,比如HttpRequest,或者说某个Service依赖到了某个Dao,想构造service还得先构造dao,这些外部对象构造起来比较麻烦。 所以出现了Mock! 我们可以用 Mock 工具来模拟这些外部对象,来完成我们的单元测试。   实现Mock技术的优秀开源框架有很多,下面以Mockito为例,用几个简单例子来介绍Mock工具的基本使用: 1.Mockito的第一个示例 1 @Test 2 public void simpleTest(){ 3 4 //创建mock对象,参数可以是类,也可以是接口 5 List<String> list = Mockito.mock(List.class); 6 7 //设置方法的预期返回值 (如果list.get(0) 被调用 ,调用之后返回 helloworld) 8 //当然前提是要创建了Mock对象,如这里就是创建了跟 List相关的 Mock对象 9 //这里还看不出什么作用,因为Mock 还看不出来,List很容易就能创建 10 //假如是一个很复杂的对象,构造这样一个对象很有难度,使用Mock就很方便了,我们不用去一步一步填充它的属性去构造, 11 //只需要Mock 一下,就可以拿到这个对象,去测试它的方法,(当然,如果方法有参数我们是需要传递的,像get