`
log_cd
  • 浏览: 1098495 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Assert

阅读更多
    Assert(org.springframework.util.Assert) 翻译为中文为“断言”,它断定某一个实际的运行值和预期是否一样,否则就抛出异常。

Spring 对方法入参的检测借用了这个概念,其提供的 Assert 类拥有众多按规则对方法入参进行断言的方法,可以满足大部分方法入参检测的

要求。这些断言方法在入参不满足要求时就会抛出 IllegalArgumentException。

断言方法:
    (1)notNull(Object object)  当 object 不为 null 时抛出异常,notNull(Object object, String message) 方法允许您通过 message

定制异常信息。和 notNull() 方法断言规则相反的方法是 isNull(Object object)/isNull(Object object, String message),它要求入参一

定是null;
    (2)isTrue(boolean expression)/isTrue(boolean expression, String message)当 expression 不为 true 抛出异常;
    (3)notEmpty(Collection collection)/notEmpty(Collection collection, String message)  当集合未包含元素时抛出异常。         

  (4)notEmpty(Map map)/notEmpty(Map map, String message) 和 notEmpty(Object[] array, String message)/notEmpty(Object[] array,

String message) 分别对 Map 和 Object[] 类型的入参进行判断;
    (5)hasLength(String text)/hasLength(String text, String message)  当 text 为 null 或长度为 0 时抛出异常;
    (6)hasText(String text)/hasText(String text, String message)  text 不能为 null 且必须至少包含一个非空格的字符,否则抛出异

常;
    (7)isInstanceOf(Class clazz, Object obj)/isInstanceOf(Class type, Object obj, String message)  如果 obj 不能被正确造型为

clazz 指定的类将抛出异常;
    (8)isAssignable(Class superType, Class subType)/isAssignable(Class superType, Class subType, String message)  subType 必

须可以按类型匹配于 superType,否则将抛出异常;
分享到:
评论

相关推荐

    python assert的用处示例详解

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要...

    业务异常提示处理 springboot+Assert(自定义断言)

    本项目“业务异常提示处理 springboot+Assert(自定义断言)”着重于利用Spring Boot的特性来构建高效、易维护的业务逻辑,并通过自定义断言提升代码的可读性和可维护性。下面我们将详细探讨这些知识点。 1. **Spring...

    assert_param-转载.txt

    ### assert_param 在 STM32 中的应用 #### 一、assert_param 概述 在 STM32 开发过程中,为了确保程序的稳定性和可靠性,经常需要使用到断言(assert)来验证函数参数的有效性。`assert_param` 是一个用于参数验证...

    assert.h头文件

    assert.h头文件下载

    STM32中assert_param的使用

    STM32 assert_param使用详解 assert_param是一个宏定义,在STM32的固件库和示例程序中广泛使用。它的主要作用是检测传递给函数的参数是否是有效的参数。如果参数无效,assert_param将报告错误,使程序员可以及时...

    VC中如何使用ASSERT断言

    在Microsoft Visual C++ (VC) 开发环境中,`assert` 是一个非常重要的调试工具,它允许程序员在代码中设置检查点,确保程序在特定条件下的正确性。在本篇文章中,我们将深入探讨如何在VC中使用`assert`断言,以及它...

    C语言中用ASSERT调试的八个技巧

    在C语言中, ASSERT(断言)是一种非常有用的调试工具,它可以帮助我们检测程序中的缺陷。以下是关于C语言中使用 ASSERT 进行调试的八个技巧。 1. 理解 ASSERT 的定义:在程序的某个特定点,断言会检查一个布尔...

    systemverilog设计: assert 应用的例子(ncverilog测试过的)代码

    `assert`语句是SystemVerilog中的一个关键特性,用于在仿真期间检查程序逻辑的正确性。它允许我们在设计中插入断言,以确保特定条件在特定时刻必须为真。如果断言失败(即条件不满足),则会产生一个错误消息,帮助...

    assert在C语言中的使用

    在C语言中,assert是一种用于程序调试的宏定义,它可以帮助开发人员检查程序中某些关键条件是否满足预期,从而确保程序的正确运行。assert通常通过一个表达式作为参数,当该表达式的结果为假(即表达式的结果为0)时...

    Assert使用

    2. **使用方法**:详细介绍不同编程语言中 `Assert` 的用法,如 C++ 中的 `assert()` 函数,Java 中的 `java.util.Assert` 类,C# 中的 `System.Diagnostics.Debug.Assert()` 和 `System.Diagnostics.Trace.Assert()...

    C语言头文件 ASSERT

    C语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC...

    android用webview加载assert中的html并且可拨打页面中的电话

    在Android中,`assert`目录是一个特殊目录,用于存放应用的资源文件,这些文件不会在R类中生成引用,但可以通过`getResources().getAssets()`方法访问。加载assert目录下的HTML文件,我们可以这样做: ```java ...

    关于assert_param的疑惑

    ### 关于assert_param的理解与应用 #### 一、assert_param简介 `assert_param`是一个用于检查函数参数有效性的宏,在调试阶段特别有用。它只在`DEBUG`模式下生效,这意味着在发布版本(非调试版本)中,这些检查将...

    assert,assert_valid,verify,trace用法

    对于开始学vc的人,对于assert,assert_valid,verify,trace的宏感到很奇怪,总是觉得很难掌握似的,其实这些主要是没有理清楚他们各自宏之间深层次的意义。

    HowTo 抓取 Assert Memory dump.pdf

    展讯6531平台的Assert Memory dump是在处理器出现异常或死机情况时,用于调试和定位问题的关键技术。在展讯6531的开发和维护过程中,正确抓取和分析Memory dump对于理解系统故障的原因至关重要。以下是关于如何抓取...

    Java断言(assert)

    Java断言(assert) Java断言是一种 debugging 机制,允许开发者在Java程序中添加检查点,以确保程序的正确性。断言可以在开发和测试阶段使用,以确保程序的正确性和可靠性。 Java断言的历史 Java断言是从 JDK 1.4 ...

    ASSERT.H 需要的下载

    普通的头文件。名字叫做ASSERT.H。

    Visual assert

    Visual Assert is a Visual Studio® AddIn that allows you to easily write, manage, run, and debug your C/C++ unit tests – without ever leaving the Visual Studio® IDE. No fiddling with command line ...

    深入探讨C++中的引用和ASSERT断言

    ### 深入探讨C++中的引用和ASSERT断言 #### 引用 **引用**是C++中的一项重要特性,它本质上是一个已存在的变量的别名。这意味着当我们通过引用访问一个变量时,实际上就是在直接操作那个变量。理解引用的工作原理...

Global site tag (gtag.js) - Google Analytics