WebSurfer's Home

トップ > Blog 1   |   ログイン
APMLフィルター

Web Custom Control の例外処置

by WebSurfer 2010年8月6日 17:26

Web カスタムコントロールでは、Visual Studio でプロパティの初期値を設定する際、入力値をチェックして条件に合わなければ例外をスローするようにできます。以下の画像のような感じです。

Web カスタムコントロールの例外処置

具体的には、例えば以下のように、値の設定時に入力値をチェックして条件に合わなければ例外をスローするようにコーディングしたとします。

namespace CustomControlThrowExceptionTest
{
  public class MyControl : WebControl
  {
    public decimal MaxValue
    {
      get
      {
        object obj = ViewState["MaxValue"];
        return (obj != null) ? (decimal)obj : Decimal.MaxValue;
      }
      set
      {
        if (value < MinValue)
        {
          throw new Exception("MaxValueException");
        }
        ViewState["MaxValue"] = value;
      }
    }

    public decimal MinValue
    {
      get
      {
         object obj = ViewState["MinValue"];
         return (obj != null) ? (decimal)obj : Decimal.MinValue;
      }
      set
      {
        if (MaxValue < value)
        {
          throw new Exception("MinValueException");
        }
        ViewState["MinValue"] = value;
      }
    }
    ・・・中略・・・
  }
}

上記のプロパティを含む Web カスタムコントロールを作って、それをページに配置します。

そして、Visual Studio のプロパティウィンドウで、例えば、まず MaxValue を 100 に設定し、次に MinValue に 200 を入力すると、上の画像のようなダイアログが現れて設定の誤りを知らせてくれます。

コンパイルして Bin フォルダに配置しても、App_Code フォルダにソースのままファイルを置いても同じ動作をします(条件をチェックして例外をスローします)。

Web ユーザーコントロールの場合は、チェックは実行時でないとできません(間違った初期値が設定できてしまいます)。

知ってました? こんなことは常識と言われるかもしれませんが、それを知った当時、Web ユーザーコントロールしか知らない未熟者だった自分には驚きでした。

Tags:

Web Custom Control

About this blog

2010年5月にこのブログを立ち上げました。主に ASP.NET Web アプリ関係の記事です。

Calendar

<<  2024年4月  >>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

View posts in large calendar