問題タブ [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.
c++ - 「void func() throw(type)」のポイントは?
これが有効な C++ プログラムであることはわかっています。関数宣言のスローのポイントは何ですか? 私の知る限り、それは何もせず、何にも使用されていません。
castle-windsor - Castle Windsor ResolveAll は、登録されたサービスのいずれかを解決できない場合にスローします
Castle Windsor (2.0) メソッドの現在の動作は
依存関係がないために解決できないすべてのサービスを無視することです。すべてのサービスを解決するための推奨される方法 + サービスを解決できない場合に例外をスローする方法は何ですか?
php - PHPでの例外のキャッチ構文エラー
if-then-else
複数のブロックを回避する方法として、PHPで例外を使用しようとしています。ただし、例外をキャッチしようとすると、エラーが発生しますParse error: syntax error, unexpected T_CATCH in /directory/functions.php on line 66
。投げたり捕まえたりするのに何か問題がありますか?
c# - 直接スローする代わりに、ThrowHelper メソッドを使用する必要があるのはいつですか?
直接スローする代わりに、 ThrowHelperメソッドを使用するのが適切なのはどのような場合ですか?
直接スローする代わりに、 ThrowHelperメソッド (例外をスローすることのみを目的としたメソッド)を呼び出すと、より小さなバイトコードが生成されるはずであると読みました。
これと、明らかなカプセル化 (間接的な別のレイヤー) は、少なくともいくつかのシナリオでは、直接スローしない十分な理由になる可能性があります。
とにかく、IMO の欠点も重要ではありません。
- (例外的な) 制御フローの一部が隠されています
- 例外は、より不可解なスタックトレースを持つことになります
- コンパイラ (2.0) は、ThrowHelper呼び出しがメソッドからの終了ポイントであることを認識しないため、何らかのコード アラウンドが必要です。
私の限られた経験では、全体的な設計が悪化することがよくあります。
これは部分的に個人的な好みの問題かもしれません。とにかく、この問題に関するあなたの個人的なガイドラインは何ですか? メソッド パラメーターの検証 ( ThrowArgumentNullException(paramName)など) などの一般的なタスクすべてに、 ThrowHelpersを使用することをお勧めしますか? この問題について明らかな何かが欠けていますか?
ところで、この問題と検証の問題を混同しないようにしています。たとえば、次のような方法です。
c++ - C++でポインタによる例外をキャッチ
例外をキャッチする方法は3つあることがわかりましたが、違いは何ですか?
1)値でキャッチします。
2)参照によるキャッチ。
3)ポインタでキャッチします。
値によるキャッチはオブジェクトの2つのコピーを呼び出し、参照によるキャッチは1つを呼び出すことだけを知っています。では、ポインタによるキャッチはどうですか?ポインタによるキャッチをいつ使用するのですか?オブジェクトをスローすることに加えて、このようなオブジェクトへのポインターをスローできますか?
ruby-on-rails - rake:未定義のパラメータを処理する最良の方法は?
と呼ばれる1つのパラメーターを必要とするRailsアプリにrakeタスクがありますUSER_ID
。
実行を停止する例外をスローしたいと思います。これは私のタスクがどのように見えるかです:
どのコードが続きTHROW SOMETHING HERE
ますか?
c++ - 参照によってキャッチされたスローオブジェクトの寿命
C ++標準、パラグラフ15.1.4は次のように述べています。
スローされる例外の一時コピー用のメモリは、3.7.3.1に記載されている場合を除き、不特定の方法で割り当てられます。その例外に対して実行されているハンドラーがある限り、一時は存続します。
なぜこのコードがクラッシュするのか疑問に思っています(ベストプラクティスではないことはわかっています):
具体的には、スローされたmagicExceptionオブジェクトのデストラクタがcatchブロックの前に呼び出されます。ただし、コピーコンストラクターをクラスに追加すると、次のようになります。
次に、コードが機能し、デストラクタが予期された場所(catchブロックの終わり)で呼び出されますが、興味深いことに、コピーコンストラクタはまだ呼び出されません。コンパイラー(最適化がオフになっているVisual C ++ 2008)によって最適化されていますか、それとも何かが足りませんか?
c++ - 関数ヘッダーまたは宣言だけで例外タイプを指定する必要がありますか? (C++)
私の SVector.cpp ファイルには、throw (underflow_error) 部分も含める必要がありますか?
また
ありがとう。
c++ - 終了が呼び出されたときに自動オブジェクトのデストラクタが呼び出されますか?
throw
デストラクタから私たちがいるとどうなりますか?私はそれterminate()
が呼び出されることを知っています、そしてメモリは確かに解放されてデストラクタが呼び出されます、しかし、これはから呼び出される前ですか、それとも後 ですか?おそらくここでの問題は、スタックが巻き戻されている間に使用されることであり、それが問題です。throw
foo
throw
c++ - catch 省略記号 (...) 内でスローすると、C++ で元のエラーが再スローされますか?
私のコードに次のスニペットがある場合:
デフォルトの省略記号ハンドラーによってキャッチされた特定の例外をスローが再スローしますか?