问题标签 [unchecked-exception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 始终使用检查的异常
我最近一直在重构一些 Java 代码……我发现有很多 RuntimeExceptions 被抛出(即未经检查的异常)。我创建了自己的已检查异常,并用我自己的异常替换了这些 RuntimeExceptions 的每个实例。然后,这迫使我检查异常。
话虽如此,我发现检查异常更好,因为另一个开发人员将确保处理异常......而不是程序只是吃异常而不向用户显示任何内容。
我已经阅读了许多关于未检查异常与已检查异常的文章。但是,我仍然觉得我更多地检查了异常,因为它减少了人为错误。
主要使用检查的异常是多么糟糕的编程?有没有其他人觉得他们更喜欢受检查的异常而不是未检查的异常?
java - 面对 java.lang.StackOverflowError 从构造函数抛出未经检查的异常
我试图运行以下代码示例,但出现 StackOverflow 错误。它似乎陷入了无限循环。任何人都可以帮助我知道这里发生了什么吗?
请在下面找到代码片段
java - 自定义未经检查的异常
好吧,伙计们,过去一天左右我一直在努力解决这个问题。我的家庭作业让我同时创建未经检查和检查的异常。我相信我得到的检查异常基本上必须在编译之前处理(使用 try & catch 或将其扔给调用它的下一个东西。对于未经检查的异常,我不明白自定义异常是如何工作的。它们在运行时被捕获并且不要'不一定需要抛出或用 try & catch 包裹,但如果它们是自定义的,IDE 或其他什么知道要查找什么?示例:如果用户添加了一个 pokemon,我的自定义 Unchecked 文件之一应该触发但是派对已满,但我如何告诉 IDE 这就是需要发生的事情?我的异常文件如下所示:
然后我想用这种方法实现它,但是我不知道该怎么做。我现在意识到我不能扔它们,因为用户不会期待它们,因此不会试图抓住它们。
java - 标准 API 中所有已检查/未检查异常的参考
我正在尝试了解 Java 中的异常,并且出于教育目的,如果我能获得标准 API 中所有已检查异常和所有未检查异常的引用,那就太好了。
相关问题,但不完全是我所追求的。
java - Customized Exception是checked还是unchecked Exception?
自定义异常是 Checked Exception 还是 Unchecked Exception?如何?
java - 异常处理中的 Java 性能问题
我知道 Java 中的 Checked 和 Unchecked Exception。
在多层环境中,unchecked Exception 是否比checked Exception 有更好的性能?
java - 为什么不抛出异常的代码允许捕获已检查的异常?
在 Java 中,抛出已检查异常(Exception或其子类型 - IOException、InterruptedException 等)的方法必须声明throws语句:
不声明throws
语句的方法不能抛出已检查异常。
但是在安全方法中捕获已检查的异常在 java 中仍然是合法的:
实际上,没有。这有点好笑:编译器知道e不是检查异常并允许重新抛出它。事情甚至有点荒谬,这段代码无法编译:
第一个片段是提出问题的动机。
编译器知道不能在安全方法中抛出已检查的异常 - 所以也许它应该只允许捕获未检查的异常?
回到主要问题- 是否有任何理由以这种方式实现捕获检查的异常?这只是设计中的一个缺陷,还是我错过了一些重要因素——可能是向后不兼容?RuntimeException
如果只允许在这种情况下被捕获,可能会出现什么问题?非常感谢示例。
java - Java 方法包含另一个引发异常的方法
我有add(String)
调用私有方法的公共方法inspectSequence(String)
来检查字符串是否有效。
如果传递String
有效,则此方法返回数组,如果无效则方法抛出IllegalArgumentException
代码是下一个
因此,在某些情况下,将无效String
传递给add
方法输出将是下一个:
但我不想让用户知道私有inspectSequence
方法,因为这是实现细节,对吧?
那么在这种情况下我能做些什么呢?在这里抛出未经检查的异常是个好主意吗?
在方法内抛出异常是一个好主意,inspectSequence
或者我应该null
在提供String
无效时返回,然后检查add
方法中的返回结果,并根据它抛出或不抛出异常?
exception - 有什么简单的方法可以查看 Kotlin 函数抛出的异常?
我主要了解检查异常的潜在问题以及 Kotlin 忽略它们的原因。但是,我遇到的问题是我找不到任何万无一失的方法来清楚地向调用者表明函数可能抛出的异常。
我在 Python 中无数次遇到这个问题,我的程序在运行几个月后会崩溃,因为我没有意识到我正在使用的某个库中的函数会引发特定的异常。尽管被迫捕获异常可能会带来很大的问题,但很高兴能清楚地看到函数可能抛出的所有潜在异常。
那么回到这个问题,有没有什么简单的方法可以查看一个函数在 Kotlin 中抛出了哪些异常?对于从 Kotlin 调用的用 Java 编写的方法呢?即使只是在工具(intelliJ)中。我不算在 javadoc 或 kdoc 中编写它,因为您正在使用的函数的编写者可能已经省略了它。
java - 用更具体的异常类型替换通用异常?
对于我一直在做的一个项目,我们有一些看起来像这样的块:
A类:
但是,我的任务是用仅特定“预期”类型的异常替换我们捕获通用异常的所有实例。
问题是 callSomeMethod() 有这样的东西
B类:
理想情况下,我的团队要求我尽可能少地更改,我无法更改 callSomeMethod() 的签名,但他们也不想只捕获 A 类中的任何 RuntimeException,因为他们不想捕获只是任何类型的 RuntimeException - 只有我们从 B 类中排除的那些。
处理这个问题的最佳方法是什么?