问题标签 [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{}
块包装函数,以便对该函数的所有调用将自动具有将调用我的全局日志记录方法的错误处理代码。(为了避免使用 try/catch 块污染代码)。
.call
然而,这稍微超出了我对 JavaScript、 and.apply
方法和this
关键字的低级功能的理解。
我写了这段代码,基于原型的Function.wrap
方法:
这是这样使用的:
该代码完美运行。它打印出 6,然后调用我的全局错误处理程序。
我的问题是:当我包装的函数在一个对象中并且它使用“this”运算符时,这会破坏什么吗?我有点担心,因为我正在调用.apply,在那里传递一些东西,我担心这可能会破坏一些东西。
comparison - 彻底使用“if”语句或“try/catch”块?
给我一些关于哪个是更好的编码实践/使代码更高效/看起来更漂亮/无论如何的想法:增加和提高使用 if 语句来预测和捕捉潜在问题的能力?或者只是简单地利用 try/catch?
假设这是针对 Java 的(如果重要的话)。
编辑: 我目前正在摆脱一些公认的过时和受限制的当前编码实践,但我对这样做的必要性有点担心(例如this)。我只是在询问对此的一些看法。不是辩论。
c++ - 你真的可以有一个没有主体的函数/方法,而只是一个 try/catch 块吗?
请注意,此函数没有“{”和“}”主体。只是一个 try/catch 块:
这是有意成为 C++ 的一部分,还是 g++ 扩展?
除了绕过 {} 的 1 级之外,还有其他目的吗?
在遇到http://stupefydeveloper.blogspot.com/2008/10/c-function-try-catch-block.html之前我从来没有听说过这个
javascript - Javascript 是否会针对未处理/未捕获的异常触发事件?
我正在寻找记录未处理的 javascript 异常。当未捕获异常时是否会触发事件?我希望在它们导致浏览器中的 javascript 错误之前捕获异常,但我不想在 try/catch 中运行我的整个应用程序。任何帮助,将不胜感激。谢谢!
更新:tvanfosson 指出 onerror 是一种可能性。它不是规范的一部分,仅在基于 IE 或 Gecko 的浏览器中可用。
OnError 支持表 - http://www.quirksmode.org/dom/events/error.html
Mozilla 的文档 - https://developer.mozilla.org/en/DOM/window.onerror
WebKit 错误报告 - https://bugs.webkit.org/show_bug.cgi?id=8519
c# - 如果我在 Try 块中返回一个值,Finally 语句中的代码会触发吗?
我正在为一位朋友查看一些代码,并说他在 try-finally 块中使用了 return 语句。即使 try 块的其余部分没有触发,Finally 部分中的代码是否仍然触发?
例子:
c++ - 终于在 C++ 中
这是在标准 C++ 中实现类似最终行为的好方法吗?(无特殊指针)
- 对象没有抛出异常 -> NoException -> 对象已清理
- 对象抛出的异常 -> 已处理 -> NoException -> 对象已清理
- 对象抛出的异常 -> 抛出 -> 异常 -> 对象清理 -> 抛出
java - 究竟什么是“finally 子句的突然完成”?
根据Java 语言规范:
如果有任何封闭的 try 语句,其 try 块包含 throw 语句,则这些 try 语句的任何 finally 子句都会在控制向外转移时执行,直到捕获到抛出的值。请注意,finally 子句的突然完成可能会中断由 throw 语句启动的控制转移。
除了在 finally 块中返回之外,还有哪些其他方法?
c# - C# 我需要 TRY/CATCH 才能抛出吗?
如果我只想在异常发生时将其提高一个级别?
这两种方法不一样吗?
如果在 TryCatch 中发生异常,则会向上抛出一个级别,如果在 NoTryCatch 中发生异常,则该异常也会被向上抛出一个级别。
这个问题是在使用 ReSharper 之后出现的,并注意到它建议删除 try/catch 块,因为它是多余的。
c# - 从 try catch finally 块中返回是不好的做法吗?
所以今天早上我遇到了一些看起来像这样的代码:
现在这段代码编译得很好并且可以正常工作,但是从 try 块中返回感觉不正确,特别是如果有关联的 finally。
我的主要问题是如果 finally 抛出它自己的异常会发生什么?您有一个返回的变量,但也有一个要处理的异常......所以我很想知道其他人对从 try 块中返回的看法?
java - 在 finally 块中抛出异常
有没有一种优雅的方法来处理finally
块中抛出的异常?
例如:
你如何避免块中的try
/ ?catch
finally