動作の違いを確認するC#この話、何度も説明をしているのでいい加減何か書き残した方が良いと思ったので、概要をまとめたいと思います。何が違うのかの紹介になります。具体的には例外が発生したときに、catch節で、以下の2種類の書き方をした時の挙動の違いの説明です。ex無し}ざっくりまとめると以下のようになります。普通こっちで、挙動の確認ですが、以下サイトさんに既にコード例があります。tsubalog.hatenablog.com一応こちらでもコードを書いて挙動を確認したいと思います。それぞれ実行するMainでcatchして例外をToString()して表示される内容の違いを確認する補足:catchで受けた例外をthrowする事を「再throw」するといいます。catchで受けてex.ToString()でコンソールへ内容を表示したときの違いです。先のスタックトレースが破棄されてthrowしたところから記録されています。オブジェクトの現在の状態に問題があるため、操作は有効ではありません。catchで受けてex.ToString()した内容になります。こちらはすべてのスタックトレースが記録されています。オブジェクトの現在の状態に問題があるため、操作は有効ではありません。スタックフレームが消えている弊害(=どこで起きたか分からない)を感じるほうが多いので特別な理由がない限り「throw」を使用しましょう。(リリースしたソフトの例外がどこで起きた分かんないと滅茶苦茶困ります。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。Core3.xとUnityでAES暗号化を利用するC#の標準機能でデータを圧縮・展開するC#で属性を利用して処理に制約の説明を追加するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。