台灣最大程式設計社群網站
線上人數
775
 
會員總數:243865
討論主題:188351
歡迎您免費加入會員
討論區列表 >> VB.NET >> 請問各位會在方法裡面除錯嗎?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問各位會在方法裡面除錯嗎?
價值 : 100 QP  點閱數:236 回應數:8

樓主

city
初學者
60 35
1163 197
發送站內信

請問各位前輩們:


[副程式] [函式] [方法] 裡面常常會需要輸入參數

各位會為這些參數除錯嗎?

如以下範例:



分數介於0到100 所以除錯是正常的

可是像Class1 Form ArrayList(先不管為什麼不用List(Of T))
有需要除錯嗎?

如果使用者亂輸入 將參數Class1 Form ArrayList輸入Nothing
程式跑起來會出現錯誤

我看書上的範例 網路上的範例 好像都沒有在除錯
不知道各位前輩們實務上在寫程式時 會不會為這些參數除錯?

謝謝~~ 

搜尋相關Tags的文章: [ VB.NET ] , [ 函式 ] , [ 副程式 ] , [ 方法 ] , [ 參數 ] , [ 除錯 ] ,
本篇文章發表於2018-12-11 17:56
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

誰是誰
檢舉此回應
如果是會被此類別以外的呼叫者呼叫的 (Public, Protected, Friend/Internal) 通常是要做參數檢查比較安全。
書上或網路上的範例為什麼沒有,我猜想是因這件事情不是該文章內容要解釋的點。
本篇文章回覆於2018-12-11 23:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

小羊窒息
捐贈 VP 給 小羊窒息 檢舉此回應
寫給自己用的函數, 沒有在除錯的...(如果怕自己都沒辦法控制, 那還是寫一下吧)


寫給別人用的函數, 所有的參數都得檢查(除錯)...不然會倒大楣的
本篇文章回覆於2018-12-11 23:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
一般來說,數值及特規驗証是屬於外來輸入參數的,如get或是post還是input等元件的。
確實會做一下驗証。

但如果是程式產生的參數。一般在產生時就會有其規則。不用太過擔心出現不必要的值。
自然就不會再多做一次驗証。
本篇文章回覆於2018-12-12 12:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

city
檢舉此回應
舉個例子:



以上範例Class1本身並沒有錯誤
但是Form1在呼叫Class1的SetFormTitle方法 卻給了Nothing的參數 導致程式出錯

當然自己在呼叫自己寫的Sub Function 不會故意輸入錯誤的參數值

其實這也沒什麼標準答案
只是想知道各位大大們"實際"在寫程式時 (不是理論上 而是實際上在寫程式的時候)
會不會加上除錯的程式碼 如下:


本篇文章回覆於2018-12-12 13:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
依你的範例來看,其Form1就是我所謂的外來參數來源。也就是所謂的input元件。
在可自由輸入任何值的情況下。當然是需要先做一下值的檢查驗証機制。

正常來說,你這樣寫感覺不太對。
一般其驗証機制並不會寫在class1.SetFormTitle這邊。
而是得寫到Form1.Button1_Click這個控制內。
要先確定值的正確性後。再交給class1.SetFormTitle來處理。

一切驗証的東西,都不該在對應的設定資料中處理。
而是要在其input相關方發或是接受端方式的程式堸絨B理才對。

依你在#4的範例。我會將11~14改放到2下面。並改用else接續看要不要運行第3行。

這樣是否能讓你了解
本篇文章回覆於2018-12-12 13:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

羅伯斯
檢舉此回應
通常要由使用者輸入的參數值,應該都會執行後續的資料驗證動作
不然程式運行的過程中,就很難保證不出錯,或是RUN出不想要的結果





本篇文章回覆於2018-12-12 22:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

city
檢舉此回應
To:[浩瀚星空]5樓:

大大說的應該是先檢查資料正確後 再丟進[副程式] [函式] [方法] 裡面

正常狀況應該不會有人故意惡搞參數
不過萬一有人惡搞呢? 例如:



以上 Form1新增了一個Button
雖然這個Button看不到(寬高都是負數)
可是Form1裡面還是有個New_Button物件

雖然我不知道實際上會不會有人這樣惡搞



還有個人常發生除錯2次的情形
(一次在Class外 一次在Class內)
例如:



以上 檢查了兩次檔案是否存在



微軟內建的類別似乎也會檢查錯誤 例如:



以上 似乎Timer類別裡面就會檢查使用者輸入的Interval屬性是否正確



如果將上面程式碼改成:


以上 似乎也變成除錯兩次
(一次是使用者除錯 一次是微軟除錯)
本篇文章回覆於2018-12-13 11:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

city
檢舉此回應
看來還是加上除錯比較保險

感謝4位前輩的回答 :)
本篇文章回覆於2018-12-13 22:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.