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

java - 以编程方式抛出 NullPointerException 可以吗?

当有后置条件时,方法的返回值不能为空,怎么办?

我可以做

但断言可以关闭!

那么可以这样做吗

?

还是对这种情况使用用户定义的异常(如 NullReturnValueException )更好?

0 投票
3 回答
36701 浏览

php - 我可以声明一个 php 函数抛出异常吗?

我可以在 php 中声明一个引发异常的函数吗?例如:

0 投票
3 回答
30493 浏览

actionscript-3 - 在 Flash AS3 中,如何放置单个 try catch 代码,以捕获整个班级的任何错误?

在 Flash AS3 中,我想编写单个try catch块以捕获整个班级中的任何错误。
比如我在myClass.as中有很多函数。我不想在每个函数中编写 try catch 块以捕获此函数中的错误。
有什么方法可以做到这一点吗?

谢谢!

0 投票
2 回答
192 浏览

php - 较新版本的“... or die(...”

很久以前,我曾经在我的 PHP 代码中使用“or die”。特别像这样:

显然,这些天来这很可耻,但 X 或 Y 原则仍然对我有用。所以我虽然我会试试这个:

但这会导致解析错误!此类陈述的最佳做法是什么。它也必须看起来不错(显然!)...

我不喜欢

或者

有什么喜欢的吗?气馁?最佳实践?速度总是很好。

0 投票
5 回答
3368 浏览

c# - 投掷 VS 重投:同样的结果?

参考网上的很多文档,特别是关于 SO,例如:在 C# 中重新抛出异常的正确方法是什么? "throw e;" 之间应该有区别 和“扔;”。

但是,来自:http ://bartdesmet.net/blogs/bart/archive/2006/03/12/3815.aspx ,

这段代码:

给出以下结果:

这与博客文章完全矛盾。

使用以下代码获得相同的结果:http: //crazorsharp.blogspot.com/2009/08/rethrowing-exception-without-resetting.html

原始问题:我做错了什么?

更新:与 .Net 3.5 / csc.exe 3.5.30729.4926 的结果相同

总结:你所有的答案都很棒,再次感谢。

所以原因是由于 64 位 JITter 而有效地内联。

我只能选择一个答案,这就是我选择LukeH答案的原因:

  • 他猜到了内联问题,并且可能与我的 64 位架构有关,

  • 他提供了 NoInlining 标志,这是避免这种行为的最简单方法。

然而这个问题现在引发了另一个问题:这种行为是否符合所有 .Net 规范:CLR 规范和 C# 编程语言规范?

更新:这种优化似乎符合:Throw VS rethrow:相同的结果?(感谢0xA3

在此先感谢您的帮助。

0 投票
7 回答
513 浏览

c++ - 这被认为是内存泄漏吗?

一般规则,只有在空闲存储中分配的对象才会导致内存泄漏。但是在堆栈中创建的对象没有。

这是我的疑问,

如果 throw 没有被处理,它会调用 terminate(),然后调用 abort() 并使应用程序崩溃。此时,堆栈中的对象没有被销毁(没有调用析构函数)。

我的理解是“当应用程序终止时(通过中止或正常退出),它会释放为应用程序分配的所有内存”。因此这不能被视为内存泄漏。

我对么?

0 投票
4 回答
1546 浏览

c++ - 这段 C++ 代码:“void Foo() throw;”是什么意思?

来自一次采访的问题。

请解释这段 C++ 代码是什么意思:

0 投票
2 回答
4369 浏览

c++ - C++ 重新抛出一个被捕获的异常

我怎样才能重新抛出被捕获的异常

堵塞?

0 投票
2 回答
2894 浏览

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

与“异常如何在 C++ 中工作(在幕后) ”相同,但适用于C#

我知道抛出异常时必须执行以下步骤。

  1. 为异常类型找到最近的处理程序;
  2. 将堆栈展开到处理程序级别;
  3. 调用处理程序;
  4. 查找并调用每个finally块。

.NET 如何处理这些操作?“当前”处理程序的映射如何工作?在 try/catch 块中发出了多少代码?在投掷块中?

0 投票
5 回答
6229 浏览

c++ - 虚函数上的 C++ 异常抛出注释

我看到了以下代码段:

Q1> 什么意思

Q2> 为什么line1不能通过编译?

谢谢