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月にこのブログを立ち上げました。その後 ブログ2 を追加し、ここは ASP.NET 関係のトピックス、ブログ2はそれ以外のトピックスに分けました。

Calendar

<<  2018年9月  >>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

View posts in large calendar