問題タブ [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 をスローしても問題ありませんか?

事後条件がある場合、メソッドの戻り値は null であってはなりません。どうすればよいですか?

私はそれをできた

しかし、アサーションはオフにすることができます!

それでいいのか

?

または、そのような条件にはユーザー定義の例外 ( NullReturnValueException など) を使用する方がよいでしょうか?

0 投票する
3 に答える
36701 参照

php - PHP関数が例外をスローすることを宣言できますか?

例外をスローする関数をphpで宣言できますか?例えば:

0 投票する
3 に答える
30493 参照

actionscript-3 - フラッシュAS3では、クラス全体でエラーをキャッチするために、単一のtry catchコードを配置する方法は?

Flash AS3 では、クラス全体のエラーをキャッチするために、単一のtry catchブロックを記述したいと考えています。
たとえば、myClass.as には多くの関数があります。この関数のエラーをキャッチするために、各関数に try catch ブロックを記述したくありません。
これを行う方法はありますか?

ありがとうございました!

0 投票する
2 に答える
192 参照

php - 「...またはdie(...」の新しいバージョン

昔、私はPHPコードで「ordie」を使用していました。特にこのように:

明らかに、それは最近かなり恥ずべきことですが、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 と同じ結果

SUMUP : すべての回答が素晴らしかったです。ありがとうございます。

その理由は、64 ビット JITter による効果的なインライン化です。

答えを 1 つだけ選択する必要がありましたが、LukeHの答えを選択した理由は次のとおりです。

  • 彼は、インライン化の問題と、それが私の 64 ビット アーキテクチャに関連している可能性があるという事実を推測しました。

  • 彼は、この動作を回避する最も簡単な方法である NoInlining フラグを提供しました。

しかし、この問題は別の問題を引き起こします。この動作はすべての .Net 仕様 (CLR 仕様と C# プログラミング言語仕様) に準拠していますか?

UPDATE : この最適化は、次のように準拠しているようです: Throw VS rethrow : same result? (ありがとう0xA3 )

よろしくお願いします。

0 投票する
7 に答える
513 参照

c++ - これはメモリ リークと見なされますか?

原則として、フリー ストアに割り当てられたオブジェクトのみがメモリ リークを引き起こす可能性があります。しかし、スタックで作成されたオブジェクトはそうではありません。

ここで私の疑問は、

throw が処理されない場合は、terminate() が呼び出され、次に abort() が呼び出されてアプリケーションがクラッシュします。このとき、スタック内のオブジェクトは破棄されません (デストラクタは呼び出されません)。

私の理解では、「アプリケーションが(中止または通常の終了によって)終了すると、アプリケーションに割り当てられたすべてのメモリが解放されます」。したがって、これはメモリ リークとは見なされません。

私は正しいですか?

0 投票する
4 に答える
1546 参照

c++ - このC++コードはどういう意味ですか: "void Foo()throw;"?

1回のインタビューからの質問。

この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はコンパイラを通過できないのですか?

ありがとうございました