问题标签 [checked-exceptions]

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 回答
66 浏览

java - 在原型制作时自动添加/删除检查的异常

我宁愿不throws手动添加/删除子句,尤其是在原型设计时。是否有批量重构工具可以throws在每个方法中添加/删除子句以反映代码?毕竟,编译器会告诉您方法可能会抛出哪些异常,因此可能存在使用该信息来操作throws子句的工具。

编辑:在我澄清我正在寻找批处理工具之前,有人提到了通过 IDE 进行手动干预,但这不是我想要的。我正在寻找批处理实用程序。

0 投票
2 回答
161 浏览

java - 链接异常,捕获异常以抛出新异常

想象以下代码作为某个程序(java)的一部分:

想象一下,如果在函数 z 中抛出异常 SomeException 或 SomeOtherException,函数 x 和 y 将不会按预期执行。我们想编写我们的代码,使函数 x 和 y 知道函数 z 中抛出了异常,并让它们相应地采取行动。最好的方法是什么?

这是否太过分了,即声明新异常的唯一目的是将其他异常“转发”到更高级别?

我认为我们也可以让 SomeException 和 SomeOtherException 飞起来并在函数 x 中捕获它们。但是 imo 这可能会弥补可读性较差的代码,

例如,如果函数 z 中捕获的异常是 SQLException 和 NoSuchAlgorithmException,并且函数 y 是 login() 函数。然后函数 x 会尝试调用 login(),然后捕获 SQLException | NoSuchAlgorithmException,如果让这些异常简单地飞到最高级别,或者捕获一个 LoginFailedException,如果我们立即捕获每个异常,并让它们抛出新的异常。似乎捕获 LoginFailedException 会使代码更具可读性。

Imo 两种方式都有其缺点(可读性较差的代码与引入许多异常),我想知道经验丰富的 Java 程序员通常如何处理类似的情况。

任何关于异常的一般想法也感谢大家

0 投票
1 回答
2458 浏览

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

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

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

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

0 投票
1 回答
620 浏览

java - 如何处理 lambda 中的已检查异常?

我有以下代码片段。

由于以下错误,这无法编译。

未处理的异常类型 AddressException

我进行了一些研究,所有解决方案都只是将检查的异常包装在自定义方法中的运行时异常中。我想避免为这些东西编写额外的代码。有没有标准的方法来处理这种情况?

编辑:

到目前为止我所做的是

但它看起来不太好。我可以发誓,在其中一个教程中,我看到了一些标准的rethrow东西或类似的东西。

0 投票
1 回答
9050 浏览

java - 子类 catch 块会捕获已检查的父异常吗?

我有一个父类的检查异常的方法,它可以抛出父类和子类类型的异常

我有一个级联 catch 块,它首先有子异常

哪个块会捕获抛出的异常?由于该方法仅显式声明了 ParentException,因此 ChildException 是否会显示为 ParentException 的实例?

0 投票
4 回答
4265 浏览

c# - 如何使用 try/check for DateTime 来防止服务器错误?

我正在尝试编写一个 try/catch,但显然失败了。我不确定我是否完全理解 try/catch,但我确实知道我很难理解我需要发生的事情,以验证输入的日期是否正确,通过表单提交。我的意思是,我认为它需要是 DateTime 格式,而不是字符串,并且应该是 (MM/dd/yyyy),但是这个 try/check 事情让我陷入了循环。

说明:返回到您在 frmPersonnel 代码中添加的验证代码,并添加带有逻辑的 try/catch 以防止无效日期导致服务器错误。

代码:

0 投票
0 回答
376 浏览

java - 如何从包装异常中找出确切的根本原因异常?

让我们举这个例子

所以我将任何ExceptionAExceptionB冒泡到更高级别作为ExceptionC。所以我将使用 myClass.myMethod() 如下。

因此,正如我的代码注释所建议的那样//我想找出 ExceptionC 是从 ExceptionA 还是 ExceptionB 发生的????

有人可以解释一下,我该怎么做?

(请不要把著名的检查异常好坏之战带入这里。)

0 投票
2 回答
93 浏览

java - 为什么这被认为是未处理的异常?

由于未处理的异常,以下代码无法编译,但在我看来应该没有问题:

当调用覆盖方法时,编译器不应该很明显c.drive()不会抛出已检查的异常吗?为什么仅仅因为引用是 Car 类型而不是 Sedan 类型,我们就必须将 drive 视为仍然抛出检查异常?覆盖方法没有!

0 投票
2 回答
288 浏览

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

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

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

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

提前致谢。

0 投票
8 回答
10390 浏览

java - 如何包装检查的异常但在 Java 中保留原始的运行时异常

我有一些代码可能会同时引发检查异常和运行时异常。

我想捕获检查的异常并用运行时异常包装它。但是如果抛出 RuntimeException,我不必包装它,因为它已经是一个运行时异常。

我的解决方案有点开销,而且不是“整洁”:

任何想法更优雅的方式?