Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
try&catch
try&catch

try(トライ)&catch(キャッチ)の説明です。
前田稔(Maeda Minoru)の超初心者のプログラム入門


try&catch の説明
- try&catch は、予期しないエラー(予測されるエラー)が発生したときに、対処するための仕組みです。
次のプログラムを見て下さい。
何の変哲もないコンソールから整数値を入力するプログラムです。
/*************************************/
/*★ try-catch-finally 前田 稔 ★*/
/*************************************/
using System;
class try_catch
{
public static void Main()
{ int no;
Console.Write("整数値を入力してください--- ");
string strNo = Console.ReadLine();
no = Int32.Parse(strNo);
Console.WriteLine("no の値: " + no);
}
}
|
- 正しくタイプ入力された時は問題無いのですが、もし仮に「abc」をタイプするとどうなるのでしょう。
処理が続けられなくなり、ページ先頭の DialogBox が表示されます。
これは no = Int32.Parse(strNo); の実行において、予期せぬエラーが発生したためです。
DialogBox をキャンセルで終了すると、エラーの原因が表示されます。
ハンドルされていない例外: System.FormatException:
入力文字列の形式が正しくありません。
|
実際にプログラムを実行して、エラーを確認して下さい。
- このようなエラーは、変換だけでなくファイル入出力など様々なことが原因で発生します。
詳細は 例外処理 を参照して下さい。
try & catch は、このようなエラーが予想されるときに、対処するための仕組みです。
対処すると言っても本来は動作を継続できない事態が発生しているのですから、メッセージを表示して処理を中断するぐらいですが。 (^_^;)

try&catch を使う
- try & catch を使って、整数値の変換エラーをキャッチしてみましょう。
/****************************************/
/*★ 変換エラーをキャッチ 前田 稔 ★*/
/****************************************/
using System;
class try_catch
{
public static void Main()
{ int no;
Console.Write("整数値を入力してください--- ");
string strNo = Console.ReadLine();
try
{ no = Int32.Parse(strNo); }
catch
{ Console.WriteLine("catch が実行されました");
no= -1;
}
Console.WriteLine("no の値: " + no);
}
}
|
- 「abc」をタイプしてみて下さい。
catch が働いて DialogBox は表示されません。
その代わり "catch が実行されました" のメッセージが印字されます。
普通は catch で処理を中断するのですが、今回は no に -1 を格納してみました。
次の WriteLine("no の値: " + no); が実行されて -1 が印字されます。

超初心者のプログラム入門(C# Frame Work)

※・
※・