- 2021-10-15
- Visual C#
C# Exception の種類を特定する
「デバックしてるんだけど、例外処理でExceptionの種類を特定したい!」って言われた。。
調べたらいいじゃんって話なんだが、なんか、「catch (Exception exp)」ではなく、
「catch (ArgumentNullException exp)」な感じにしたいと。。
MSのヘルプって便利だよね。
なんかサンプルコードも実行できるし。
ソース
いつものように、実行結果には責任とりません。
ソース
// ********************************** // 実行結果には、責任取りません。 // 使用時は自己責任でお願いします。 // ********************************** using System; using System.IO; namespace ExceptionTest { class Program { static void Main(string[] args) { try { // 例外をすろー throw new IOException(); } catch ( Exception ex ) { Console.WriteLine( "\n\n--------------------ここから---------------------\n\n" ); Console.WriteLine( "例外種類 :" + ex.GetType().ToString() + "\n"); Console.WriteLine( "例外内容 :" + ex.Message + "\n"); Console.WriteLine( "例外がスローされたメソッド:" + ex.TargetSite + "\n"); Console.WriteLine( "例外ソース :" + ex.Source + "\n"); Console.WriteLine( "例外トレース:" + ex.StackTrace + "\n"); // これでも良い「ex.GetBaseException().ToString()」 Console.WriteLine( "\n\n--------------------ここまで---------------------\n\n"); // 実際、デバック中は、例外が発生したタイミングで、コンソールへ出力されるから、 // このソース意味ないんだけどね。。 // まぁ、仕事だしね。。 } } } }
実行結果
実行結果。