問題タブ [rethrow]

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 投票する
2 に答える
518 参照

c++ - C++: オブジェクトのスライスと例外

あるインタビューで、値による例外のキャッチが問題になる理由を尋ねられたので、オブジェクトのスライスが発生する可能性があると答えました。そして、これは私がインターネットで見つけたものです。たとえば、ここにあります: https://www.viva64.com/en/w/v746/

しかし、今私は実験しようとしていますが、値でキャッチするときにスライスの例を見つけることができません。スライスの通常のシナリオ (例外はありません) は次のとおりです。

最後の行で Base の代入演算子が呼び出され、Derived オブジェクトの Base 部分のみがコピーされます。そのため、b1 のベース部分は d2 からコピーされますが、b1 の派生部分は d2 のままです。悪い。

しかし、例外を値でキャッチする場合、これはどのように発生するのでしょうか?

私はこのコードを試しました (g++ と Sun CC コンパイラの両方で):

出力は次のとおりです。

したがって、Derived 例外をスローし、その Base BY VALUE をキャッチして再スローし、次に Derived BY VALUE をキャッチすると、すべて正常に動作し、スライスはありません。それはどうですか?

また、誰かが BY VALUE をキャッチするときのスライスの例を提供できますか?

0 投票する
1 に答える
2096 参照

c# - C# の Catch 内でスローする

昨日、C# に関する基本的な知識がまだ欠けている可能性が高いことに気付きました。

ステートレス Service Fabric アプリケーションがあります。メインの while ループの周りに try-catch があります。このループで例外をスローすると、while ループから抜け出し、サービスが効果的に停止します。throwcatch 句にa を追加すると、サービスが再起動します。

誰かがこれがなぜなのかを説明したり、答えを得ることができる場所に私を案内したりできますか? この動作を説明するものは見つかりませんでした。

編集:「スロー」と「スローex」の違いはありますか?私が見る限り、なぜ関数が再度実行されているのか、私の質問の説明がないからです。そのトピックは、スタック トレースのthrowとそれぞれの違いを説明することに関するものです。throw new