问题标签 [try-catch]

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 投票
6 回答
7683 浏览

javascript - JavaScript try-catch 是否忽略预期的偶尔错误是不好的做法?

在 JavaScript 中使用 try-catch 块并忽略错误而不是测试块中的许多属性是否为 null 是错误的吗?

0 投票
21 回答
123089 浏览

java - 应该尝试...catch 进入循环内部还是外部?

我有一个看起来像这样的循环:

这是唯一目的是返回浮点数组的方法的主要内容。null如果出现错误,我希望此方法返回,因此我将循环放在一个try...catch块中,如下所示:

但是后来我也想到了将try...catch块放入循环中,如下所示:

是否有任何理由,性能或其他原因,更喜欢一个而不是另一个?


编辑:共识似乎是将循环放在 try/catch 中更干净,可能放在它自己的方法中。但是,仍然存在关于哪个更快的争论。有人可以对此进行测试并给出统一的答案吗?

0 投票
4 回答
4096 浏览

design-patterns - “TryParse / Parse like”模式:实现它的最佳方式是什么

这个问题是如何指示方法不成功的后续问题。xxx() Tryxxx() 模式在许多库中都非常有用。我想知道在不复制代码的情况下提供两种实现的最佳方式是什么。

什么是最好的:

或者

我本能地假设第一个示例更正确(您确切知道发生了哪个异常),但是 try/catch 不会太贵吗?有没有办法在第二个示例中捕获异常?

0 投票
11 回答
39183 浏览

java - 对嵌套的 try/catch 块有偏好吗?

在 Java 中使用 Readers 和 Streams 时总是让我感到困扰的一件事是该close()方法可能会引发异常。由于将 close 方法放在 finally 块中是个好主意,因此需要一些尴尬的情况。我通常使用这种结构:

但我也看到了这种结构:

我更喜欢第一种构造,因为只有一个 catch 块,而且看起来更优雅。有没有理由更喜欢第二种或另一种结构?

更新:如果我指出两者都只抛出 IOExceptions 会有所不同readclose?所以在我看来,如果读取失败,关闭也会因为同样的原因而失败。

0 投票
13 回答
12411 浏览

c++ - 在 C++ 中,使用异常和 try/catch 而不是仅仅返回错误代码有什么好处?

我已经编写 C 和 C++ 很长时间了,到目前为止,我从未使用过异常和 try/catch。使用它而不是让函数返回错误代码有什么好处?

0 投票
3 回答
26582 浏览

powershell - Windows Powershell 是否有 Try/Catch 或其他错误处理机制?

在脚本中,当 command-let 或其他可执行语句出错时,是否有 try/catch 类型的机制可以从这些错误中恢复?我在文档中没有遇到过。

0 投票
2 回答
2627 浏览

sql-server - SQL Server 2005 - Error_Message() 未显示完整消息

我在 Try/Catch 中封装了一个备份数据库命令,似乎错误消息在某处丢失。例如:

..给出错误:
无法在 sysdatabases 中找到数据库“NonExistantDB”的条目。未找到具有该名称的条目。确保输入的名称正确。BACKUP DATABASE 异常终止。

然而:

...只给出错误: 备份数据库异常终止。

有没有办法获得完整的错误消息,或者这是 try/catch 的限制?

0 投票
3 回答
511 浏览

c# - 在 finally 块中访问返回值是否合法且可能?

我希望在离开函数之前设置一个 usererror 字符串,具体取决于函数中的返回码和变量。

我目前有:

是否可以使用 return RetType.FailedParse,然后在 finally 块中访问它?

0 投票
7 回答
33399 浏览

c++ - 异常如何在 C++ 中工作(在幕后)

我一直看到人们说异常很慢,但我从来没有看到任何证据。因此,我不会问是否存在,而是会问异常在幕后是如何工作的,这样我就可以决定何时使用它们以及它们是否很慢。

据我所知,异常与多次返回相同,只是它还会在每次返回后检查是否需要再进行一次或停止。它如何检查何时停止返回?我猜有第二个堆栈保存异常的类型和堆栈位置,然后它会返回直到它到达那里。我还猜测第二个堆栈被触摸的唯一一次是在一次投掷和每次尝试/接球时。AFAICT 使用返回码实现类似行为将花费相同的时间。但这只是猜测,所以我想知道到底发生了什么。

异常如何真正起作用?

0 投票
8 回答
685 浏览

c# - 如何处理 C# 中的多个错误?

我有一些读取 10 个注册表项的代码,有时值不存在,有时键不存在,有时值不是布尔值等等。我应该如何添加错误处理,目前它被放在一个很大的尝试中{} catch{} 但如果我读取的第二个值失败,那么在程序跳转到 catch{} 时不会读取其余值,我可以为每个值添加一个 try{} catch{} 但我猜有更好的方法. 你会怎么处理这个?我在问,因为我经常遇到类似的问题,我自己的解决方案是添加一个 try{} catch{}。

谢谢您的帮助。