トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
C#
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ Exception(例外)



    // 任意のコードブロック単位で設定できる。
    try {
    
    }
    catch ( e ) {

    }

C++ との互換性のため 引数なしの catch ブロックもできる。
    try {

    }
    catch {
      // ただし例外の詳細な情報はとれない。

    }


    try {

      // 例外を意図的になげる
      throw new Exception( "test" );

    }
    catch ( Exception e ) {

      // エラー内容と種類
      Console.WriteLine( e.Message() );
      Console.WriteLine( e.GetType() );
    }
    finally {

    }
___

■ 例外の種類

Java と同じく、例外にもクラス階層があり、詳細にエラー処理をする場合は 派生先の例外クラスを指定する。 任意の例外をキャッチするなら、 Exception を指定する。
    try {

    }
    catch ( IOException ) {

    }
    catch ( InvalidOperationException ) {

    }
___

■ 例外の再スロー


    try {

    }
    catch ( Exception e ) {
      // 何かの処理をして、

      // 再度なげる
      throw;
    }


___

■ 非同期Delegateの例外

    class Test
    {
        public static void method() {

            Thread.Sleep(3000);
            Console.Write("例外を発生させます");

            int z = 0;
            int i = 10 / z;
        }
    }

    {
        public delegate void AsyncInvoke(); 

        static void Main(string[] args)
        {
            AsyncInvoke i = new AsyncInvoke( Test.method );
            IAsyncResult ret = i.BeginInvoke( null, null );

            while (ret.IsCompleted == false )
            {
                Thread.Sleep( 100 );
                Console.Write(".");
            }

            // EndInvoke() を実行することで, 例外が補足できる。
            // 逆に実行をしないと補足できないため、返値の有無に関係なくコールすること。
            try
            {
                i.EndInvoke(ret);
            }
            catch (Exception e)
            {
                Console.WriteLine("Thread throw Exception");
            }
         }
    }


















NINJAIDX 10