问题标签 [throws]

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 投票
4 回答
31137 浏览

java - 抛出并捕获异常,还是使用instanceof?

我在变量中有一个异常(未抛出)。

最好的选择是什么?

或者

0 投票
1 回答
189 浏览

java - 重新抛出异常而不在声明中添加抛出

有什么方法可以避免在 Java 的方法接口中声明“抛出”的需要?

问题是:我有一个非常简单的方法,它会抛出 NPE。这很简单,我添加了所有可能的检查,坦率地说无法想象这是怎么发生的,所以我想调查一下。我在日志中添加了 try/catch(Throwable e),最后想重新抛出。

这需要我添加“抛出”声明。但是这个方法是接口的实现,所以我还需要更新接口,然后是所有其他实现,然后是一些(可能很多)用法。真的没有办法避免这种情况吗?我目前要做的是在 catch 结束时导致本机异常:通过访问 null 或除以 0 - 这看起来太恶心了!

0 投票
3 回答
14675 浏览

java - 我应该在 throws 规范中声明未经检查的异常吗?

我知道必须处理或指定已检查的异常,但未检查的异常是可选的。

如果出于某种原因我可以合理地预期方法中会发生未经检查的异常,我应该将其添加到 throws 规范中吗?或者我应该尽可能缩短规范?

0 投票
2 回答
849 浏览

java - 当我使用 throws 时,调用方法不要求处理异常

在这里,当我要从其他不要求我处理异常的地方调用此方法时,我在方法签名中使用了 throws。

0 投票
1 回答
2608 浏览

javascript - 了解 QUnit 异常测试

在编写 QUnit 测试时,我对“抛出”的行为感到惊讶。关于以下代码(http://jsfiddle.net/DuYAc/75/),谁能回答我的问题:

只有第二个测试失败了,虽然这本来是我写这个测试的自然选择......

问题:

1)为什么我必须使用内联函数来包围我测试的函数?

2)为什么最后一次测试没有失败?'func' 不会抛出任何异常。

将不胜感激阅读任何解释。

0 投票
2 回答
4328 浏览

java - 静态代码块可以抛出异常吗?

在假设的情况下,我有这样的课程:

编译时,我得到

未报告的例外java.io.FileNotFoundException;必须被抓住或宣布被扔掉

因为public Scanner(File source) throws FileNotFoundException.

为了解决这个问题,我可以scanner = new...在 try/catch 语句中加入一行:

但是,有什么办法可以让我做类似的事情:

这是一种假设情况。请不要说“你为什么要那样做?” 或“这是制作扫描仪的更好方法!”

0 投票
1 回答
701 浏览

java - 好图案?... method() 抛出 X

一些背景,然后是一些问题。

我最近才发现接口(或类)在其方法可能抛出的(已检查)异常类型中可能是通用的。例如:

关键是,如果您稍后实例化它IOException并调用该run方法,编译器就会知道您需要捕获IOException它或将其标记为已抛出。更好的是,如果X是 a RuntimeException,您根本不需要处理它。

这是一个使用上述接口的人为示例,但它基本上是一个回调,应该很常见。

我们正在调用一个通用实用程序方法runTwice(可能在外部库中定义)来运行我们自己的具有特定检查异常的特定方法,并且我们不会丢失有关可能抛出哪个特定检查异常的任何信息。

另一种方法是简单地使用throws Exception方法Runnable.runrunTwice方法。这不会限制Runnable接口的任何实现,但会失去检查异常的优势。或者可能根本没有throws,也失去了检查异常的优势并可能强制实现包装。

因为我从未见过throws X,也许我错过了一些东西。此外,我已经多次看到回调示例用作反对检查异常的参数而没有被反驳。(这个问题对检查异常的优缺点不感兴趣。)

一般是throws X个好主意吗?优缺点都有什么?你能举一些使用throws X或没有但应该有的例子吗?

基本上,我想要一些进一步的见解。您可能会对以下示例发表评论。

  • OutputStream抛出IOException(也许ByteArrayOutputStream可以延伸GenericOutputStream<RuntimeException>

  • Callable/Future.get

  • 公共池borrowObject/makeObject

(自编辑以来,我不是在问这些是否可以/应该在回想起来时进行不同的设计。相反,会throws Xthrows Exception。)

0 投票
1 回答
230 浏览

java - Java - 异常处理 - 抛出

我知道 javac 强制程序员处理需要由方法抛出或使用 try-catch/finally 处理的检查异常。它不会阻止程序员抛出未经检查的异常。

我也知道我们为什么要做 try-catch/finally 并理解为什么 java 会检查某些异常集。

但我无法理解以下内容:

Q1)为什么方法应该“抛出”异常。我们从中得到什么好处?我认为,使用“抛出”的方法抛出或不抛出同样的事情正在发生!!!

Q2)当方法“抛出”异常时,内部会发生什么?

Q3)我认为“错误”与“异常”的分类不同,只是为了强调它们“当它们发生时,程序员方面不会做太多事情”,但我们可以“抛出”“try-catch/finally”对他们来说像往常一样,其他一切也与“例外” *s相同。如果我错了,请纠正我。

请帮我。先感谢您。

0 投票
3 回答
1837 浏览

java - 无法抛出 IllegalArgumentException

我需要程序接受 3 个测试分数,然后打印它们的平均值,但如果分数小于 -1 或大于 100,它应该抛出 IllegalArgumentException。我可以打印出平均值,但是在测试 -1 或 101 时,它不会抛出异常。我究竟做错了什么?

我对学习异常非常陌生,因此感谢您提供任何帮助。

这是我的代码:

0 投票
2 回答
179 浏览

java - 异常工作正确,但不是必须的

  1. method processExceptions() 应该调用方法BEAN.methodThrowExceptions并处理异常:

1.1。如果发生异常FileSystemException,则通过调用方法记录它BEAN.log并向前抛出

1.2. 如果发生异常CharConversionException或任何其他IOException情况,只需通过调用方法记录它BEAN.log

  1. 添加您在 2.1 中转发的异常的类/类型。到processExceptions()方法签名。

  2. 处理方法中剩余的异常main()并记录。利用try..catch

我尝试了不同的解决方案。它有效,但不是应有的。throwsin 方法的正确位置是什么。或者也许我根本不应该使用它们?如果我不放置它们,我将无法使用throw. 请帮忙,我真的很感激你的时间。