问题标签 [throw]

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 回答
1177 浏览

c++ - `void func() throw(type)` 的意义何在?

我知道这是一个有效的 c++ 程序。函数声明中的 throw 有什么意义?AFAIK 它什么也不做,也不用于任何事情。

0 投票
1 回答
782 浏览

castle-windsor - Castle Windsor ResolveAll 当任何注册服务无法解析时抛出

似乎 Castle Windsor (2.0) 方法的当前行为

就是忽略所有由于缺少依赖关系而无法解析的服务。当任何服务无法解决时,解决所有服务+抛出异常的推荐方法是什么?

0 投票
4 回答
6488 浏览

php - 在 PHP 中捕获异常语法错误

我试图在 PHP 中使用异常来避免多个if-then-else块。但是,当我尝试捕获异常时,我得到了错误Parse error: syntax error, unexpected T_CATCH in /directory/functions.php on line 66。我的投掷和接球做错了吗?

0 投票
7 回答
5867 浏览

c# - 我什么时候应该使用 ThrowHelper 方法而不是直接抛出?

什么时候适合使用ThrowHelper方法而不是直接抛出?

我读过调用ThrowHelper方法(唯一目的是抛出异常的方法)而不是直接抛出应该产生更小的字节码。

这一点,以及明显的封装(另一层间接),可能是不直接抛出的好理由,至少在某些情况下是这样。

无论如何,IMO 的缺点也不是微不足道的。

  • 异常)控制流的一部分被隐藏了
  • 异常最终有一个更神秘的堆栈跟踪
  • 编译器(2.0)将无法识别ThrowHelper调用是方法的退出点,因此需要一些代码周围。

我有限的经验是,整体设计通常会变得更糟。

这可能部分是个人品味的问题。无论如何,您对这个问题的个人指导方针是什么?您是否发现将ThrowHelpers用于方法参数验证等所有常见任务(ThrowArgumentNullException(paramName)等)是一个好主意?我在这个问题上遗漏了一些明显的东西吗?

顺便说一句,我试图不将此问题与验证问题混为一谈,例如:

0 投票
5 回答
22374 浏览

c++ - 在 C++ 中通过指针捕获异常

我发现捕获异常有三种方式,有什么区别?

1)按价值捕获;

2) 通过引用捕获;

3) 通过指针捕捉;

我只知道按值捕获会调用对象的两个副本,按引用捕获会调用一个。那么如何通过指针捕获呢?何时使用指针捕获?除了抛出一个对象,我可以像这样抛出一个指向对象的指针吗?

0 投票
1 回答
638 浏览

ruby-on-rails - rake:处理未定义参数的最佳方式?

我在 Rails 应用程序上有一个 rake 任务,需要一个参数,称为USER_ID.

我想我想抛出一个停止执行的异常。这是我的任务的样子:

什么代码THROW SOMETHING HERE

0 投票
1 回答
1002 浏览

c++ - 被引用捕获的抛出对象的生命周期

C++ 标准,第 15.1.4 段说:

被抛出异常的临时副本的内存以未指定的方式分配,除非在 3.7.3.1 中注明。只要有针对该异常执行的处理程序,临时性就会持续存在。

我想知道为什么这段代码会崩溃(我知道这不是最佳做法):

具体来说,抛出的 magicException 对象的析构函数在 catch 块之前被调用。但是,如果我向我的类添加一个复制构造函数:

然后代码开始工作,析构函数在预期的位置(catch 块的末尾)被调用,但有趣的是复制构造函数仍然没有被调用。编译器是否对其进行了优化(Visual C++ 2008 关闭了优化),还是我遗漏了什么?

0 投票
1 回答
130 浏览

c++ - 我是否也只在函数头或声明中指定异常类型?(C++)

在我的 SVector.cpp 文件中,我是否也应该包含 throw (underflow_error) 部分?

或者

谢谢。

0 投票
6 回答
2197 浏览

c++ - 调用终止时是否调用自动对象的析构函数?

当我们throw使用析构函数时会发生什么?我知道它会导致terminate()被调用,并且确实释放了内存并调用了析构函数,但是,这是在调用之前还是之后 ?也许这里的问题是在堆栈展开时使用它是问题所在。throwfoothrow

0 投票
1 回答
15343 浏览

c++ - throw 在 catch 省略号 (...) 中是否会重新抛出 C++ 中的原始错误?

如果在我的代码中,我有以下代码段:

throw 会重新抛出默认省略号处理程序捕获的特定异常吗?