« [gfortran]配列へのインデックスの指定のチェックと-fbounds-checkオプション | トップページ | [C#]コマンドラインにおけるコンパイラーのオプション »

2019年12月18日 (水)

[C#]キャッチした例外の発生場所(ソースコードの行番号)を出力する

try-catch命令で例外をキャッチし、tryブロックで強制的に例外を発生させてみる(以下の例では、配列のインデックスに0を指定)。

} catch (Exception ex) {
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}

以下のような出力があるはず。

インデックスが配列の境界外です。
場所 ○○.Main(String[] args)

これでは例外が発生した場所がわからないため不便。コマンドラインでコンパイルをする際に-debugオプションを指定すると、例外が発生したときに発生場所(ソースコードの行番号)が出力されるようになる。

>csc.exe -debug ○○.cs

出力は以下のようになるはず。

インデックスが配列の境界外です。
場所 ○○.Main(String[] args) 場所 ○○.cs:行 ××

« [gfortran]配列へのインデックスの指定のチェックと-fbounds-checkオプション | トップページ | [C#]コマンドラインにおけるコンパイラーのオプション »

C#」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [gfortran]配列へのインデックスの指定のチェックと-fbounds-checkオプション | トップページ | [C#]コマンドラインにおけるコンパイラーのオプション »

無料ブログはココログ

■■

■■■