当前位置: 首页 > 面试题库 >

异常与断言

岳昊空
2023-03-14
问题内容

Java异常处理和使用assert条件之间有什么区别?

众所周知,Assert有两种类型。但是什么时候应该使用assert关键字?


问题答案:

将断言用于代码中的内部逻辑检查,并使用常规异常来处理即时代码无法控制的错误情况。

不要忘记可以打开和关闭断言-如果您关心参数验证之类的事情,则应该使用异常来明确声明。(但是,您可以选择使用断言在 私有
方法上执行参数验证,原因是此时的违反是由于内部错误而不是外部错误引起的。)

另外,对所有事物都使用异常是完全合理的(IMO)。我个人根本不使用断言,但这在某种程度上是个人喜好问题。(肯定有主张和反对主张的客观论据,但是要完全消除偏好还不够明确。)



 类似资料:
  • 中断与异常 操作系统需要对计算机系统中的各种外设进行管理,这就需要CPU和外设能够相互通信才行。一般外设的速度远慢于CPU的速度。如果让操作系统通过CPU“主动关心”外设的事件,即采用通常的轮询(polling)机制,则太浪费CPU资源了。所以需要操作系统和CPU能够一起提供某种机制,让外设在需要操作系统处理外设相关事件的时候,能够“主动通知”操作系统,即打断操作系统和应用的正常执行,让操作系统完

  • 问题内容: 异常存储在哪里?堆,堆。如何为异常分配和释放内存?现在,如果您有多个需要处理的异常,是否创建了所有这些异常的对象? 问题答案: 我假设为异常分配的内存分配方式与所有其他对象(在堆上)分配方式相同。 这曾经是个问题,因为您不能为OutOfMemoryError分配内存,这就是直到Java 1.6之前 才没有堆栈跟踪的原因。现在,它们也为stacktrace预分配了空间。 如果您想知道在抛

  • 80386有两种手段来中断程序的执行: 1.异常是同步事件,当CPU在指令执行期间检测到某些条件时作出的反映。 2.中断是异步事件,通常由需要引起注意的外部设备触发。 中断和异常有一点是相同的:它们都需要CPU暂停正在执行的程序,转去执行更高优先级的程序。这两种中断的主要区别在于它们的发生源。异常在重新执行引起异常的程序和数据时总能复现,而中断通常独立于当前正在执行的程序。 正常情况下,应用程序不

  • 我有一个存储搜索查询日志的集合。它的两个主要属性是user_id和search_query。对于已注销的用户,user_id为null。我正在尝试运行mapreduce作业以找出每个用户的计数和术语。

  • 本节介绍如何使用三个异常处理程序组件(try、catch 和 finally)来编写异常处理程序。 然后,介绍了 Java SE 7中引入的 try-with-resources 语句。 try-with-resources 语句特别适合于使用Closeable的资源(例如流)的情况。 本节的最后一部分将通过一个示例来分析在各种情况下发生的情况。 以下示例定义并实现了一个名为ListOfNumbe

  • 本文向大家介绍解析C#中断言与异常的应用方式及异常处理的流程控制,包括了解析C#中断言与异常的应用方式及异常处理的流程控制的使用技巧和注意事项,需要的朋友参考一下 断言与异常(Assertion Vs Exception) 在日常编程实践中,断言与异常的界限不是很明显,这也使得它们常常没有被正确的使用。我也在不断的与这个模糊的怪兽搏斗,仅写此文和大家分享一下我的个人看法。我想我们还可以从很多角度来