重构机房收费系统你要用的——异常处理和抛出异常(try catch finally)——(vb.net)...
你能保證你的程序不會出問題嗎?
不能
當你的程序執行到某個地方發生了你不想要的結果。你是否想讓它一錯再錯?
不想
你是否想讓你的程序占著茅坑不拉屎?
不想
你是否想知道你的程序出錯的原因?
想
看了了這4個問題之后。假設你的回答和我的一致,那么請看下文
trycatch finally的使用方法:
演示樣例:
? ??finally ?
? ??DBConnection.Close倘若你的程序在連接數據庫的時候出錯導致連接失敗,假設沒有不論什么你能夠參考的提示信息。那么你可能會覺得是查詢語句錯了。而不是sa用戶的登錄password錯誤了。而如上程序,假設
DBConnection.Open()?'連接數據庫
這里出錯了,那么這句完了之后她就直接跳轉到catch ex as exception那里運行它以下的語句,通過調用ex.message,它會返回錯誤的原因,可能是username或password錯誤了。然后你能夠在finally那里寫上關閉數據庫連接的代碼,這樣就能夠防止程序遇到錯誤直接跳出程序。而不釋放資源(相當于占著茅坑不拉屎)。
回到剛才的第二個問題,當程序發生了你不想要的結果。他會一直執行下去。剛才說遇到錯誤它會跳出來。可是不想要的結果如本來這個變量A應該被賦值得到3,可是它卻是4,而這個時候它是不會直接跳出的,由于這不是什么異常的錯誤,可能是邏輯上的錯誤。依照分層的思想。假設發生在UI層,我們為了讓UI曾職責單一,不進行不必要的推斷語句,僅僅負責用戶操作的響應、用戶數據的傳遞和各種顯示的功能,邏輯上不做太多的推斷和處理,這時候你能夠使用拋出異常來使你的程序發生異常,直接跳到catch那里。
比方上面的代碼
在連接數據庫之前拋出了異常,注意。這個異常是你人為?的制造的。它也屬于異常的一種類型,所以這個時候它就不運行連接數據庫以及以下的代碼直到catch為止,他會運行catch以下的代碼,并顯示異常的原因。值得注意的是finally后面的語句,無論程序是否會出現異常。它肯定是會運行的,一般自己衡量一下該運行什么程序好。一般都會寫一些釋放資源的代碼。
總結
以上是生活随笔為你收集整理的重构机房收费系统你要用的——异常处理和抛出异常(try catch finally)——(vb.net)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring事务管理 Transacti
- 下一篇: Http Hijacker