问题标签 [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 投票
7 回答
2837 浏览

确保始终捕获异常

C++ 中的异常不需要被调用函数捕获(没有编译时错误)。因此,是否使用 try/catch 捕获它们取决于开发人员的判断(与 Java 不同)。

有没有一种方法可以确保调用函数始终使用 try/catch 捕获抛出的异常?

0 投票
7 回答
11115 浏览

为什么我不能在我的 super() 调用周围使用 try 块?

因此,在 Java 中,构造函数的第一行必须是对 super 的调用……无论是隐式调用 super(),还是显式调用另一个构造函数。我想知道的是,为什么我不能在它周围放一个 try 块?

我的具体情况是我有一个模拟类进行测试。没有默认构造函数,但我想要一个使测试更易于阅读。我还想将从构造函数抛出的异常包装到 RuntimeException 中。

所以,我想要做的实际上是这样的:

但是 Java 抱怨说 super 不是第一个声明。

我的解决方法:

这是最好的解决方法吗?为什么Java不让我做前者?


对于“为什么”,我最好的猜测是 Java 不希望我的构造对象处于可能不一致的状态……但是,在进行模拟时,我不在乎。看来我应该能够做到以上...或者至少我知道以上对于我的情况是安全的...或者似乎无论如何都应该这样做。

我正在覆盖我在测试类中使用的任何方法,因此我没有使用未初始化变量的风险。

0 投票
7 回答
2688 浏览

在空的 catch 块中调试异常

我正在调试一个生产应用程序,它有一堆空的 catch 块叹息

当调试器在 IDE 中遇到问题时,有没有办法查看异常是什么?

0 投票
12 回答
25805 浏览

C# 中 try/catch 的真正开销是什么?

所以,我知道 try/catch 确实增加了一些开销,因此不是控制流程的好方法,但是这个开销来自哪里,它的实际影响是什么?

0 投票
9 回答
18036 浏览

如何在一个 catch 块中捕获所有类型的异常?

在 C++ 中,我试图在一次捕获中捕获所有类型的异常(就像catch(Exception)在 C# 中一样)。它是如何完成的?更重要的是,如何捕获被零除的异常?

0 投票
9 回答
30801 浏览

php中try-catch的性能

在 php 5 中使用 try-catch 语句时需要考虑什么样的性能影响?

我以前在网上读过一些关于这个主题的古老且看似矛盾的信息。我目前必须使用的许多框架都是在 php 4 上创建的,并且缺乏 php 5 的许多细节。所以,我自己在使用 php 的 try-catchs 方面没有太多经验。

0 投票
19 回答
20951 浏览

Try-catch 每一行代码,无需单独的 try-catch 块

我目前没有这个问题,但你永远不知道,思想实验总是很有趣。

忽略你的架构甚至尝试这样做的明显问题,让我们假设你有一些别人设计的可怕编写的代码,并且你需要在相同的代码中执行大量广泛而多样的操作块,例如:

乘以一百。其中一些可能有效,另一些可能会出错。您需要的是与“on error resume next”等效的 C#,否则您最终将在多行代码周围复制和粘贴 try-catch。

你会如何尝试解决这个问题?

0 投票
6 回答
13974 浏览

Javascript 尝试/捕获

我有一个运行用户生成的正则表达式的函数。但是,如果用户输入了一个不会运行的正则表达式,那么它就会停止并跌倒。我已经尝试将该行包装在 Try/Catch 块中,但是没有任何反应。

如果有帮助,我正在运行 jQuery,但下面的代码没有它,因为我猜它比这更基本一点。

编辑:是的,我知道我没有逃避“[”,这是故意的,也是问题的重点。我正在接受用户输入,我想找到一种方法来捕捉这类问题,而不会让应用程序陷入困境。

0 投票
1 回答
3659 浏览

SQL Try-Catch 块可以处理抛出的 CLR 错误吗?

我们正在使用 SQL 2005 和 try-catch 功能来处理数据库中的所有错误处理。我们目前正在部署一个 .NET CLR 函数以在数据库中进行一些 WCF 调用。此 WCF 过程在 CLR 中编写,然后部署到 SQL。如果我在 CLR 代码中放置一个 try-catch 块,它会很好地捕获错误。但是,我似乎无法将错误抛出到 SQL 中的 try-catch 块。SQL 似乎忽略了我抛出的内容并捕获了它发现的错误。两者之间是否没有关系(即我不能从一个扔到另一个?)

如果我可以从 CLR 中抛出到 SQL 中的调用过程,是否需要任何特殊格式?我尝试了捕获抛出的错误,然后抛出不同的错误的特定情况,但是 SQL 忽略了我抛出的错误并捕获了原始错误,就好像它忽略了抛出的错误一样。

0 投票
20 回答
90838 浏览

为什么 try {...} finally {...} 好;尝试 {...} catch{} 不好?

我见过有人说不带参数使用 catch 是不好的形式,特别是如果那个 catch 没有做任何事情:

但是,这被认为是好的形式:

据我所知,将清理代码放在 finally 块中和将清理代码放在 try..catch 块之后的唯一区别是,如果你的 try 块中有 return 语句(在这种情况下,finally 中的清理代码将运行,但 try..catch 之后的代码不会)。

不然最后有什么特别的?