问题标签 [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.
javascript - JavaScript try-catch 是否忽略预期的偶尔错误是不好的做法?
在 JavaScript 中使用 try-catch 块并忽略错误而不是测试块中的许多属性是否为 null 是错误的吗?
java - 应该尝试...catch 进入循环内部还是外部?
我有一个看起来像这样的循环:
这是唯一目的是返回浮点数组的方法的主要内容。null
如果出现错误,我希望此方法返回,因此我将循环放在一个try...catch
块中,如下所示:
但是后来我也想到了将try...catch
块放入循环中,如下所示:
是否有任何理由,性能或其他原因,更喜欢一个而不是另一个?
编辑:共识似乎是将循环放在 try/catch 中更干净,可能放在它自己的方法中。但是,仍然存在关于哪个更快的争论。有人可以对此进行测试并给出统一的答案吗?
design-patterns - “TryParse / Parse like”模式:实现它的最佳方式是什么
这个问题是如何指示方法不成功的后续问题。xxx() Tryxxx() 模式在许多库中都非常有用。我想知道在不复制代码的情况下提供两种实现的最佳方式是什么。
什么是最好的:
或者
我本能地假设第一个示例更正确(您确切知道发生了哪个异常),但是 try/catch 不会太贵吗?有没有办法在第二个示例中捕获异常?
java - 对嵌套的 try/catch 块有偏好吗?
在 Java 中使用 Readers 和 Streams 时总是让我感到困扰的一件事是该close()
方法可能会引发异常。由于将 close 方法放在 finally 块中是个好主意,因此需要一些尴尬的情况。我通常使用这种结构:
但我也看到了这种结构:
我更喜欢第一种构造,因为只有一个 catch 块,而且看起来更优雅。有没有理由更喜欢第二种或另一种结构?
更新:如果我指出两者都只抛出 IOExceptions 会有所不同read
吗close
?所以在我看来,如果读取失败,关闭也会因为同样的原因而失败。
c++ - 在 C++ 中,使用异常和 try/catch 而不是仅仅返回错误代码有什么好处?
我已经编写 C 和 C++ 很长时间了,到目前为止,我从未使用过异常和 try/catch。使用它而不是让函数返回错误代码有什么好处?
powershell - Windows Powershell 是否有 Try/Catch 或其他错误处理机制?
在脚本中,当 command-let 或其他可执行语句出错时,是否有 try/catch 类型的机制可以从这些错误中恢复?我在文档中没有遇到过。
sql-server - SQL Server 2005 - Error_Message() 未显示完整消息
我在 Try/Catch 中封装了一个备份数据库命令,似乎错误消息在某处丢失。例如:
..给出错误:
无法在 sysdatabases 中找到数据库“NonExistantDB”的条目。未找到具有该名称的条目。确保输入的名称正确。BACKUP DATABASE 异常终止。
然而:
...只给出错误: 备份数据库异常终止。
有没有办法获得完整的错误消息,或者这是 try/catch 的限制?
c# - 在 finally 块中访问返回值是否合法且可能?
我希望在离开函数之前设置一个 usererror 字符串,具体取决于函数中的返回码和变量。
我目前有:
是否可以使用 return RetType.FailedParse,然后在 finally 块中访问它?
c++ - 异常如何在 C++ 中工作(在幕后)
我一直看到人们说异常很慢,但我从来没有看到任何证据。因此,我不会问是否存在,而是会问异常在幕后是如何工作的,这样我就可以决定何时使用它们以及它们是否很慢。
据我所知,异常与多次返回相同,只是它还会在每次返回后检查是否需要再进行一次或停止。它如何检查何时停止返回?我猜有第二个堆栈保存异常的类型和堆栈位置,然后它会返回直到它到达那里。我还猜测第二个堆栈被触摸的唯一一次是在一次投掷和每次尝试/接球时。AFAICT 使用返回码实现类似行为将花费相同的时间。但这只是猜测,所以我想知道到底发生了什么。
异常如何真正起作用?
c# - 如何处理 C# 中的多个错误?
我有一些读取 10 个注册表项的代码,有时值不存在,有时键不存在,有时值不是布尔值等等。我应该如何添加错误处理,目前它被放在一个很大的尝试中{} catch{} 但如果我读取的第二个值失败,那么在程序跳转到 catch{} 时不会读取其余值,我可以为每个值添加一个 try{} catch{} 但我猜有更好的方法. 你会怎么处理这个?我在问,因为我经常遇到类似的问题,我自己的解决方案是添加一个 try{} catch{}。
谢谢您的帮助。