程式中引數的檢查
寫程式的時候,我們經常要寫引數檢查,就是在處理這個引數前對引數進行乙個合法性或者合理性的檢查。
一般的情況下,大部分的人寫這個程式,習慣上就是在函式體裡面寫一次。例如:
void test(int num)catch(){
這樣寫的話,數值得到了檢查得到了檢查,而執行的過程也得到了保證。只是再問一句,這樣就安全了嗎?其實還沒有,我們檢查了引數,檢查了執行過程,錯誤還可以發生在呼叫這個程式的時候。
例如this.test(非法或者特殊型別num);
這樣的話,一樣在呼叫這個函式的時候引發新的錯誤。
所以,在呼叫這個函式之前,也應該對引數再做一次不同於內部檢查的方式(相同也無妨,主要是為了要覆蓋到各種情況的檢查)。於是有
檢查num;
this.test(num);
這樣的話,在乙個常規的功能裡,我們嵌入了3重檢查,相對而言,程式在引數方面的穩定性就得到比較好的保障。
當然,我知道也有不少的技術人員表示反對,因為多重檢查的方式嚴重阻礙了程式本身的執行的效率。所以,這種做法,必須找到乙個效率和穩定的平衡點。我個人在做小軟體的時候,在注重實現功能不追求效率的情況下,喜歡用這種方式來寫,所以軟體一般很少出現崩潰的現象。
python引數型別檢查 Python中的型別檢查
本文中所有 均執行在python 2.7上 為什麼要進行型別檢查?總所周知,python是一門典型的動態語言,在變數定義 使用的過程中遵循duck typing,當對某一變數進行操作時才去檢查它是否支援該操作。這在大多數情況下沒有什麼問題。但有時我們希望當面對非法型別的引數的時候採取某些預設處理機制...
檢查傳入引數
對函式傳入的引數進行檢查 1 既能提高程式的效率 2 也能使程式變得更健壯,防止程式執行時崩潰 可從以下方面入手 1 傳入指標,需檢查指標是否有效。void f char p 2 傳入的是陣列下標,對下標範圍檢查。intoperator int c iindex 當然,還有其他很多情況,對函式傳入的...
引數檢查 property
繫結屬性時,如果直接把屬性暴露出去,雖然寫起來很簡單,但無法對引數進行檢查,導致屬性被隨便修改 因此,可以通過在類內定義get 獲取屬性值,定義set 對屬性值進行設定並對設定值進行檢查 但通過定義get 和set 會讓程式顯得複雜,沒有直接用屬性這麼直接簡單 python內建的 property裝...