Type and Value validation

Type and Value validation

什麼是資料驗證?

能夠測試來源資料(service,file or data entry),是否符合預期的值。

  • 可避免overflow

  • 避免不正確的結果

  • 避免非預期的副作用

  • 防止資安問題

 

資料驗證主要有分三個方式

1.編譯器驗證物件的型別是否正確

2.使用Debug/Trace Assert() method

int number = 100;

bool isInRange = number < 50;

Debug.Assert(isInRange, "超出範圍"); // Debug模式才會觸發

Trace.Assert(isInRange, "超出範圍"); // Debug跟Release模式都會觸發

基本上Debug.Assert()跟Trace.Assert()用法是一樣的,只是觸發時機點不一樣。

用Debug.Assert()與Trace.Assert(),當驗證失敗時,程式執行的點會停在Assert的地方,接著會跳出一個視窗,提醒開發者或者使用者錯誤訊息,如果提示視窗案略過則程式會繼續往下跑。

驗證失敗視窗:

3.Raise an Exception

  • System.ArgumentException
  • System.ArgumentOutofRangeException
  • System.ArgumentNullException

Raise Exception跟 Debug.Assert 不同的地方是,Raise Exception後整個應用程式都會終止。

在這邊做一個簡單的Demo

private static string _name;

public static string Name
{
    get { return _name; }
    set 
    {
        if (value == null)
        {
            throw new ArgumentNullException("不得為null");
        }

        if (value == Name)
        {
            throw new ArgumentException("重複的值");
        }

        _name = value; 
    }
}

static void Main(string[] args)
{
    Name = null;
}

跳出Exception視窗,並終止程式

 

這邊Exception Demo,只是純粹介紹用法,實際上並不會這樣使用,只是Demo而已。

 

 

一天一分享,身體好健康。

該追究的不是過去的原因,而是現在的目的。