[C#] 例外

Exceptionは、System namespaceにあるクラスとして実現されている。
様々な例外(exception)の発生が予想される処理は, try{…}catch{…}finally{…}で囲む。
tryブロックでの処理で発生した例外はcatchで処理される。
finallyはcatchから抜ける場合に、かならず最後に実行される。
たとえば、catcheの中からreturnで直接抜ける場合にも処理が移行する直前にfinallyの中身が実行される。
finallyでは、たとえば、ファイルのクローズ処理など必ずしなければならない後始末の処理などを行う機能として使用する。

try
{
input = Double.Parse(Console.ReadLine());
}
catch (FormatException exc)
{
//format 違反を処理する
}
catch (OverflowException exc)
{
// 数値のoverflowの処理をする
}
finally
{
//
}

例外を発生させるときは、 throw()を使う。

throw;

は、例外処理から同じ種類の例外を投げ直すときに使用する。
通常は

if (strInput == null)
throw new ArgumentNullException("input string");

のようにする。引数はなくても良いが、文字列をつけることで情報を付加できる。
文字列から数を生成するときには例外を発生せずにチェックできるmethod であるTryParseが使える。

while(!Double.TryParse(Console.ReadLine(), out input))
{
.....
}

return valueはParseできたときはtrueになる。parseされた値は out 属性がついた変数(例ではinput)に入る。

広告
%d人のブロガーが「いいね」をつけました。