问题标签 [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.

0 投票
2 回答
110 浏览

java - 我应该声明一个未经检查的异常吗?

我有一个方法可以调用另一种方法,如下所示:

现在,我想通知将要使用m1()它的客户可能会抛出MyException. 如果我这样声明它可以吗:

我不确定它,因为我曾经使用throws带有检查异常的声明。对未经检查的人这样做很常见吗?

0 投票
1 回答
2458 浏览

java - 为什么要尝试在已检查的异常上抛出未检查的异常?

有人告诉我,我应该考虑在我的代码中将 Unchecked 异常抛出Checked异常不仅如此,还要用我自己的扩展 RuntimeException 。现在,我确实了解两者之间的区别,但仍然不明白我为什么要这样做?

如果我有这个方法头,它会抛出 2 种异常:

为什么我应该用一个(不太详细的)例外来替换它们?

0 投票
3 回答
789 浏览

java - 在java中说“不可能从错误中恢复”是什么意思?

这里说不可能从错误中恢复。我不确定这是什么意思,因为我可以像异常一样捕获错误。例如:

上述程序正常执行,似乎可以从错误中恢复。任何人都可以帮忙吗?

更新:

stackoverflow的例子有点令人费解,只有白痴想从stackoverflow中恢复。这是关于 OutOfMemory 的另一个示例:

这是一个简单的HashMap缓存,使用 执行代码java -Xmx1m Main,很快就会看到OutOfMemoryError,然后手动释放内存,程序会继续执行。插入-> OutOfMemoryError -> 释放-> 插入...看到了吗?程序已从 OutOfMemoryError 中恢复。不是吗?而且我认为这很有意义。那么,为什么有人仍然说程序无法从 OutOfMemoryError 中恢复。

0 投票
2 回答
288 浏览

java - 如何决定创建已检查的异常或未检查的异常

我想知道如何知道创建和抛出检查异常或未检查异常。

例如,我有一个服务,它需要一些数据并在使用它之前对其进行验证。在验证过程中,某个字段不符合规则,我想抛出一个异常,比如 ValidationException()。我怎么知道决定它应该被选中还是不选中。

在另一种情况下,我从我的代码中调用外部 Web 服务,例如 google stock api。假设我有 3 秒的超时。如果时间到期,我想抛出一个异常,比如 BackendException()。我怎么知道它应该是一个检查的异常还是一个未经检查的异常。

提前致谢。

0 投票
3 回答
3709 浏览

java - 数组列表的Java未经检查的转换

谁能告诉我如何以正确的方式创建一个数组数组列表?!

我想要一个存储 3 个数组列表的数组(或任何其他解决方案)。如何将对象添加到 arrylists 也很高兴知道。

父数组

  1. ChildArrayList1
  2. ChildArrayList2
  3. ChildArrayList3

我很高兴有任何帮助

解决方案:

可以忽略或抑制警告。

0 投票
3 回答
4166 浏览

java - 是否可以在 Java 中禁用检查异常?

我正在阅读一篇关于 Java 中已检查和未检查异常的文章,并找到了这篇文章/链接: https ://projectlombok.org/disableCheckedExceptions.html

根据这篇文章,它只是为 javac 开发的一个 hack。

考虑下面的代码片段:

在这里我必须写 public static void main(String args[]) throws IOException ,因为我正在尝试打开一个文件。这里“抛出”子句是必须的。没有它我会得到一个错误。如果我确定我正在打开的文件的存在怎么办。iemyfile.txt 在提到的位置。在某些时候,人们会感觉到代码不需要很少的 Checked Exceptions。

Java 是否提供了任何工具来根据需要禁用已检查的异常?

即使做了这么多的研究,我也找不到合适的答案。

0 投票
2 回答
3116 浏览

java-8 - Java 8 lambda 捕获异常

来自Cay Horstmann的《不耐烦的 Java 8》一书:

您不是一直讨厌必须在 Runnable 中处理已检查的异常吗?编写一个方法uncheck来捕获所有已检查的异常并将它们转换为未检查的异常。例如,

提示:定义一个接口RunnableEx,其run方法可能会抛出任何异常。然后实施

在 uncheck 函数中使用 lambda 表达式。

我为此编写了这样的代码:

我是按照提示做的吗?有没有更好的方法来做到这一点?

还有另一个补充问题:

为什么你不能只使用Callable<Void>而不是RunnableEx?

0 投票
1 回答
1495 浏览

java - 通过 REST API 使用已检查的异常与未检查的异常

根据[1],

“在决定检查异常与未检查异常时,问问自己,当异常发生时客户端代码可以采取什么行动?如果客户端代码不能做任何事情,请将其设为未检查异常。如果客户端代码将采取一些有用的根据异常中的信息进行恢复操作,使其成为受检异常。”

我得到了整体的想法。但是,我的困惑是,“客户端代码”是什么意思。假设我正在编写一个 REST API,它有一个调用实际后端层的服务层(我也在其中进行验证)。

  1. 那么API用户也被认为是“客户端代码”?
  2. 对于请求验证,我应该抛出 Checked 还是 Unchecked Exceptions?
  3. 避免使用检查异常的最佳做法是什么?
  4. 是否可以在验证中抛出未经检查的异常,让它冒泡,然后在服务层的自定义异常中捕获和包装它?(并使用 JAX-RS ExceptionMapper [3] 向 API 用户展示)

参考:

[1] http://www.onjava.com/pub/a/onjava/2003/11/19/exceptions.html

[2] http://archive.oreilly.com/pub/post/avoiding_checked_exceptions.html

[3] https://docs.oracle.com/javaee/6/api/javax/ws/rs/ext/ExceptionMapper.html

0 投票
1 回答
6524 浏览

spring - 在出现未经检查的异常的情况下,Spring Batch 继续作业流程

我在 Spring Batch 中发送电子邮件Tasklet

SMTP 服务器已关闭,因此MailSendException发生未经检查的异常。

转换的下一步被声明为(来自电子邮件发送):

并且nextStep()即使在未经检查的异常情况下也会执行。

Spring Batch Framework 的正常行为是忽略未经检查的异常吗?

问题是这个异常被默默地忽略并且没有被记录(我将rootlogger 设置为WARN)。

在为什么事务在 RuntimeException 而不是 SQLException 上回滚时报告了一些相反的行为

更新使用调试器后,我在里面结束:

statusFAILEDstatesendNotificationStepnextState()返回nextStep

有:catch_resume

但之前处理的异常是:

批处理管理员将问题步骤列为ABANDONED.

更新 3重现行为的全功能示例(感谢Sabir Khan提供 stab!):

0 投票
1 回答
160 浏览

exception - 哪个异常得到优先检查或未检查?为什么?

我编写了我自己的两个自定义异常,一个是选中的,另一个是未选中的,当我执行我的代码时只显示选中的异常为什么我无法获得未选中的异常输出?

上述程序的输出是: Got Checked Exception ,但我期待输出Got Checked Exception && Got Unchecked Exception。我在这里犯了什么错误?我该如何克服呢?