よくある例外型

来源:互联网 发布:正则表达式 手机号js码 编辑:程序博客网 时间:2024/06/01 10:49

・用語

try-catchステートメント

例外を捉える処理をtryブロックに記述する

例外が発生したら行う処理をcatchブロックに記述する

例外の種類をxxxにする

例外発生時に行う処理をxxxにする

例外が発生したらメッセージを表示する/例外のメッセージを取得して表示する

例外ごとに処理を分ける


よくある例外種類

・xx配列のインデックスが範囲外の時に例外処理をする IndexOutOfRangeException

・指定したファイルが存在しない時の例外処理をする FileNotFoundException

・パスが無効の時の例外処理をする DirectoryNotFoundException

・パスに無効な構文が含まれている時に例外処理をする IOException

・パスが空の時に例外処理をする ArgumentException

・引数の値が指定可能な範囲を超えている時の例外処理をする ArgumetOutOfRangeException

・0で割り算を行った時の例外処理をする DivideByZeroException

・指定したデータベースが見つからない時の例外処理をする OleDbException

・データベースプロバイダが存在しない時に例外処理をする InvalidOperationException

・テーブル操作が無効の時の例外処理をする OleDbException

・追加するレコードがすでに存在する時の例外処理をする OleDbException


・例外の種類を取得する GetTypeクラス  使用例:ex.GetType().ToString()

・例外が発生したアプリケーション名を取得する Sourceプロパティ 使用例:ex.Source

・例外処理ブロックの後始末をする finallyブロック

・例外を上位レベルで処理をする throwステートメント 例外をスローする

・例外を発生させる throwステートメント 


・独自の例外を定義する

・例外の定義をする

    public class ExcSample : ApplicationException
    {
        private int wrongValue;

        //プロパティ命名規則
        //プロパティ名には、名詞または名詞句を使用する
        //Pascal 形式を使用する
        //bool型をIs 形式にする
        public int WrongValue
        {
            get
            {
                return wrongValue;
            }
            set
            {
                wrongValue = value;
            }
        }
        public ExcSample(string msg, int wv) : base(msg)
        {
            wrongValue = wv;
        }
  
    }

・例外を使用する

        static void Main(string[] args)
        {
            int i;
            try
            {
                for (i = 0; i < 10; i++)
                {
                    Console.Write(i.ToString()+"  ");
                    if (i > 2)
                        throw new ExcSample("不正な値です", i);
                }
            }
            catch (ExcSample ex)
            {
                Console.WriteLine(ex.Message + "" + ex.WrongValue);
            }
            Console.ReadKey();
        }






原创粉丝点击