C# 入門 & 実践 / C sharp

4-23. 例外処理 - 1 - try catch finally


1.基本的な例外処理の使い方です。

    class MyException
    {

        public void Test()
        {
            Console.WriteLine("Test() : メソッドが呼ばれました。");
            // エラーをスローします!
            throw new System.Exception("エラーが出たよ");
        }

        static void Main()
        {
            try
            {
                MyException me = new MyException();
                Console.WriteLine("try : メソッドを呼び出します。");
                // エラーをスローさせます。
                me.Test();
                Console.WriteLine("try : メソッドは無事終了しました。");
            }
            catch
            {
                Console.WriteLine("catch : エラーがスローされたようです。");
            }
            finally
            {
                Console.WriteLine("finally : try catch の全ての処理後に呼ばれます。");
            }
        }
    }

try : メソッドを呼び出します。
Test() : メソッドが呼ばれました。
catch : エラーがスローされたようです。
finally : try catch の全ての処理後に呼ばれます。

このように try の途中メソッドを呼び出したところで処理が止まり
# Console.WriteLine("try : メソッドは無事終了しました。");
この行は出力されません。
catch finally へと処理が続きます。


2.例外のオブジェクトを使用してみます。

        public void Test()
        {
            Console.WriteLine("Test() : メソッドが呼ばれました。");
            // エラーをスローします!
            // 既に新しいオブジェクトをスローしています。
            throw new System.Exception("エラーが出たよ");
        }

        static void Main()
        {
            try
            {
                MyException me = new MyException();
                Console.WriteLine("try : メソッドを呼び出します。");
                // エラーをスローさせます。
                me.Test();
                Console.WriteLine("try : メソッドは無事終了しました。");
            }
            catch( Exception e ) 
            {
                // Exception は全ての例外をキャッチします!
                Console.WriteLine("catch( Exception e) : エラーがスローされた.");
                Console.WriteLine("catch( Exception e) : {0}" , e.Message );
            }
            finally
            {
                Console.WriteLine("finally : try catch の全ての処理後に呼ばれます。");
            }
        }
try : メソッドを呼び出します。
Test() : メソッドが呼ばれました。
catch( Exception e) : エラーがスローされた.
catch( Exception e) : エラーが出たよ
finally : try catch の全ての処理後に呼ばれます。

Exception e を利用してスローされたエラーのメッセージを表示できました。

}
catch( Exception e )
{

はすべての例外をキャッチするので、

}
catch
{
は必要なくなります。




4-22. 正規表現 / RegularExpressions - 4 - 置換 Replace / MatchEvaluator « 4. C# 入門 Level 2 » 4-24. 例外処理 - 2 - 独自の例外オブジェクトを作る。


C# 入門 & 実践 / C sharp