いいえ、問題ないようです。ただし、例外をキャッチした後に例外を再スローしています。Throw R
try-catch が最初に呼び出されたコード ブロックに例外が渡されることを意味します。
try
{
Array.Sort(PokeArray, (x1, x2) => x1.Name.CompareTo(x2.Name));
}
catch (NullReferenceException R)
{
// throw R; // Remove this, and your exception will be "swallowed".
// Your should do something else here to handle the error!
}
アップデート
まず、スクリーンショットのリンクを元の投稿に追加します。これにより、問題が明確になります。:)
第二に、例外をキャッチしtry-catch
ます-デバッグモードにいる間だけではありません。その行の後もステップを続行すると、try-catch 句から抜け出すことができ、プログラムを続行する必要があります。
例外がキャッチされなかった場合、プログラムは終了していました。
PS : VS のメイン メニューから と を選択Debug
しExceptions..
、どの列でも [スロー] がチェックされていないことを確認してください。そうでなければそうなるでしょう。
明確にするために、これを繰り返しましょう。この例外は、コードがデバッグ モードで実行され、例外の表示が有効になっているため、表示されるだけです。
同じコードが本番モードで実行された場合、OP が期待するように、例外は飲み込まれます。