`
arksea
  • 浏览: 64457 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

断言位置的选择:谁犯错谁异常

阅读更多

     比如某gen_server:

...

hello(A,B,C) when is_atom(A),is_integer(B),is_binary(C) ->
    gen_server:cast(?SERVER,{hello, A, B, C}).

handle_cast({hello, A, B, C}, State} ->
     ....
     {noreply, State}.

...

 

 

     将断言加在hello/3上显然比加在handle_cast/2上合理。

     如果将断言加在handle_cast上,调用发起方出错将造成此server无故重启甚至失效,无法为其他进程提供服务,而作为出错的调用方却不受影响。

     将断言加于hello上,调用方将因自己的错误发生异常,从而正确的报告异常或者拥有重启恢复的机会,也不会影响目标服务和其他进程。

分享到:
评论

相关推荐

    Java断言(assert)

    Java断言(assert) Java断言是一种 debugging 机制,允许开发者在Java...Java断言是一种强大的调试工具,可以帮助开发者快速地检测程序中的错误和异常。但是,断言应该谨慎使用,不然可能会影响程序的性能和可靠性。

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

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

    JMETER 断言几种方式

    你可以通过以下设置来配置BeanShell断言: - **Name**: 设置断言的名称,以便于识别。 - **Comments**: 添加注释,解释断言的作用。 - **Reset bsh.interpreter before each call**: 决定是否在每次调用前重置...

    java异常处理机制示例(java抛出异常、捕获、断言)

    总结来说,Java异常处理机制提供了一种结构化的方法来处理程序运行时的错误,通过try-catch-finally结构捕获和处理异常,同时,利用断言进行内部逻辑验证,以及日志记录来跟踪程序行为。这样的机制增强了代码的健壮...

    Jmeter中断言的使用方法.doc

    2. 选择响应断言:在Jmeter中,可以选择响应断言来判断返回结果。一般选择响应文本,然后选择匹配规则,可以选择“包含”或“匹配”。 3. 添加断言内容:在添加断言时,需要添加要响应的内容,可以是某个字符串、...

    JAVA程序设计——异常和断言

    JAVA程序设计中的异常和断言是程序开发过程中的重要概念,它们帮助开发者处理程序运行时可能出现的问题,确保程序的稳定性和可靠性。 异常处理是JAVA语言中的一个关键特性,用于处理程序执行过程中出现的非正常情况...

    断言失败异常(解决方案).md

    断言失败异常是软件开发过程中常见的问题之一,特别是在单元测试或代码调试阶段。断言是一种编程语句,用来检验代码中的条件是否满足预期。若不满足,程序将抛出断言失败的异常,这有助于开发者早期发现并修正错误。...

    SCJP 310-055 题库4 异常和断言

    根据给定文件的信息,我们可以深入探讨SCJP 310-055考试中的异常处理和断言相关知识点。此部分题库主要聚焦于Java语言中的异常处理机制以及如何正确地使用断言来确保代码质量。 ### 异常处理 在Java中,异常处理是...

    断言失败异常解决办法.md

    在编程中,断言是一种有效的调试工具,用于确保代码中的某些假设始终为真。...断言失败异常的解决办法涉及到异常处理策略的选择、代码修改以及测试验证等方面。合理地处理断言失败可以有效提高代码的稳定性和健壮性。

    2022年游戏软件测试培训讲义(共31张PPT).pptx

    硬断言是指在软件中使用断言来检测错误和异常情况,而软断言是指在软件中使用断言来检测可能出现的错误和异常情况。 6.断言的优点:断言可以快速地发现软件问题,并对问题进行定位和解决,从而提高软件的可靠性和可...

    python:playwright 自动等待和断言(csdn)————程序.pdf

    如果在指定的超时时间内元素仍未满足条件,Playwright会抛出`TimeoutError`异常。 接着,我们来看断言。在上面的代码示例中,`assert page.title() == "百度一下,你就知道"`就是一个断言,用于验证页面标题是否...

    浅析Java异常处理中断言的使用

    Java异常处理中的断言是一种强大的调试工具,它允许程序员在代码中插入检查点,以确保程序的特定条件在运行时始终为真。断言的概念基于一个假设:在编写代码时,我们对某些条件有一定的信心,认为它们在程序执行时...

    统一异常处理、断言和枚举结合使用案例

    统一异常处理、断言和枚举结合使用案例

    SystemVerilog断言的示例和参考.zip

    使用`assert_knowhow`和`assert_no_knowhow`可以处理断言失败时的异常情况。 9. **断言的使用时机**: - 在设计模块的初始化阶段,验证输入和输出的初始状态。 - 在关键操作之后,确认设计的响应正确。 - 在...

    jmeter实例(json断言+参数化)

    首先,我们需要将查看结果树中的响应数据格式化为JSON格式,然后按照以下步骤配置JSON断言: 1. **格式化JSON数据**:将查看结果树中的响应数据复制到bejson等在线格式化工具中,确保其格式正确无误。 2. **定位...

    断言失败异常如何解决.md

    当程序运行至断言语句时,如果断言条件为假,则会抛出一个AssertionError异常。正确处理这种异常有助于开发者快速定位和解决问题。处理断言失败的常见方法包括修正错误条件和增强异常处理逻辑。 在Python等编程语言...

    正则表达式 零宽断言

    这时我们可以使用负向零宽断言: ``` ab(?! [A-Z]) ``` 如果输入字符串为“ab c”,则匹配成功;但如果输入字符串为“abC”,则匹配失败。 #### 匹配原理详解 接下来,我们深入探讨正向和负向零宽断言的具体匹配...

Global site tag (gtag.js) - Google Analytics