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而已。
一天一分享,身體好健康。
該追究的不是過去的原因,而是現在的目的。