问题标签 [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.
java - 抛出并捕获异常,还是使用instanceof?
我在变量中有一个异常(未抛出)。
最好的选择是什么?
或者
java - 重新抛出异常而不在声明中添加抛出
有什么方法可以避免在 Java 的方法接口中声明“抛出”的需要?
问题是:我有一个非常简单的方法,它会抛出 NPE。这很简单,我添加了所有可能的检查,坦率地说无法想象这是怎么发生的,所以我想调查一下。我在日志中添加了 try/catch(Throwable e),最后想重新抛出。
这需要我添加“抛出”声明。但是这个方法是接口的实现,所以我还需要更新接口,然后是所有其他实现,然后是一些(可能很多)用法。真的没有办法避免这种情况吗?我目前要做的是在 catch 结束时导致本机异常:通过访问 null 或除以 0 - 这看起来太恶心了!
java - 我应该在 throws 规范中声明未经检查的异常吗?
我知道必须处理或指定已检查的异常,但未检查的异常是可选的。
如果出于某种原因我可以合理地预期方法中会发生未经检查的异常,我应该将其添加到 throws 规范中吗?或者我应该尽可能缩短规范?
java - 当我使用 throws 时,调用方法不要求处理异常
在这里,当我要从其他不要求我处理异常的地方调用此方法时,我在方法签名中使用了 throws。
javascript - 了解 QUnit 异常测试
在编写 QUnit 测试时,我对“抛出”的行为感到惊讶。关于以下代码(http://jsfiddle.net/DuYAc/75/),谁能回答我的问题:
只有第二个测试失败了,虽然这本来是我写这个测试的自然选择......
问题:
1)为什么我必须使用内联函数来包围我测试的函数?
2)为什么最后一次测试没有失败?'func' 不会抛出任何异常。
将不胜感激阅读任何解释。
java - 静态代码块可以抛出异常吗?
在假设的情况下,我有这样的课程:
编译时,我得到
未报告的例外
java.io.FileNotFoundException
;必须被抓住或宣布被扔掉
因为public Scanner(File source) throws FileNotFoundException
.
为了解决这个问题,我可以scanner = new...
在 try/catch 语句中加入一行:
但是,有什么办法可以让我做类似的事情:
这是一种假设情况。请不要说“你为什么要那样做?” 或“这是制作扫描仪的更好方法!”
java - 好图案?... method() 抛出 X
一些背景,然后是一些问题。
我最近才发现接口(或类)在其方法可能抛出的(已检查)异常类型中可能是通用的。例如:
关键是,如果您稍后实例化它IOException
并调用该run
方法,编译器就会知道您需要捕获IOException
它或将其标记为已抛出。更好的是,如果X
是 a RuntimeException
,您根本不需要处理它。
这是一个使用上述接口的人为示例,但它基本上是一个回调,应该很常见。
我们正在调用一个通用实用程序方法runTwice
(可能在外部库中定义)来运行我们自己的具有特定检查异常的特定方法,并且我们不会丢失有关可能抛出哪个特定检查异常的任何信息。
另一种方法是简单地使用throws Exception
方法Runnable.run
和runTwice
方法。这不会限制Runnable
接口的任何实现,但会失去检查异常的优势。或者可能根本没有throws
,也失去了检查异常的优势并可能强制实现包装。
因为我从未见过throws X
,也许我错过了一些东西。此外,我已经多次看到回调示例用作反对检查异常的参数而没有被反驳。(这个问题对检查异常的优缺点不感兴趣。)
一般是throws X
个好主意吗?优缺点都有什么?你能举一些使用throws X
或没有但应该有的例子吗?
基本上,我想要一些进一步的见解。您可能会对以下示例发表评论。
OutputStream
抛出IOException
(也许ByteArrayOutputStream
可以延伸GenericOutputStream<RuntimeException>
)Callable
/Future.get
公共池
borrowObject
/makeObject
(自编辑以来,我不是在问这些是否可以/应该在回想起来时进行不同的设计。相反,会throws X
比throws Exception
。)
java - Java - 异常处理 - 抛出
我知道 javac 强制程序员处理需要由方法抛出或使用 try-catch/finally 处理的检查异常。它不会阻止程序员抛出未经检查的异常。
我也知道我们为什么要做 try-catch/finally 并理解为什么 java 会检查某些异常集。
但我无法理解以下内容:
Q1)为什么方法应该“抛出”异常。我们从中得到什么好处?我认为,使用“抛出”的方法抛出或不抛出同样的事情正在发生!!!
Q2)当方法“抛出”异常时,内部会发生什么?
Q3)我认为“错误”与“异常”的分类不同,只是为了强调它们“当它们发生时,程序员方面不会做太多事情”,但我们可以“抛出”“try-catch/finally”对他们来说像往常一样,其他一切也与“例外” *s相同。如果我错了,请纠正我。
请帮我。先感谢您。
java - 无法抛出 IllegalArgumentException
我需要程序接受 3 个测试分数,然后打印它们的平均值,但如果分数小于 -1 或大于 100,它应该抛出 IllegalArgumentException。我可以打印出平均值,但是在测试 -1 或 101 时,它不会抛出异常。我究竟做错了什么?
我对学习异常非常陌生,因此感谢您提供任何帮助。
这是我的代码:
java - 异常工作正确,但不是必须的
- method
processExceptions
() 应该调用方法BEAN.methodThrowExceptions
并处理异常:
1.1。如果发生异常FileSystemException
,则通过调用方法记录它BEAN.log
并向前抛出
1.2. 如果发生异常CharConversionException
或任何其他IOException
情况,只需通过调用方法记录它BEAN.log
添加您在 2.1 中转发的异常的类/类型。到
processExceptions()
方法签名。处理方法中剩余的异常
main()
并记录。利用try..catch
我尝试了不同的解决方案。它有效,但不是应有的。throws
in 方法的正确位置是什么。或者也许我根本不应该使用它们?如果我不放置它们,我将无法使用throw
. 请帮忙,我真的很感激你的时间。