什么是VB.NET的结构化异常处理
生活随笔
收集整理的這篇文章主要介紹了
什么是VB.NET的结构化异常处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
深談VB.NET結構化異常處理執行標準
對于VB.NET語言來說,在實際編程中有一個非常重要的操作值得我們去注意,那就關于異常方面的處理。今天我們就可以通過VB.NET結構化異常處理的相關介紹,來仔細的分析一下異常方面的作用及應用方法。
概述
相較于VB語言來說,VB.NET引入了許多特色。其中最值得注意的變化就是引入了VB.NET結構化異常處理。雖然VB.NET仍然支持On Error Goto類型的異常處理,但是這樣做并不是很好。我們應該充分利用VB.NET提供的結構化異常處理。
本文將結合VB.NET結構化異常處理的基礎內容,并看一些在我們的應用程序中使用異常處理的例子。
合適的錯誤處理很重要
任何應用程序都需要一個恰當的異常處理。但是,由于嚴格的開發時間限制,責任共同承擔,和相沖突的優先級,開發人員常常忽視了組織有序、考慮周到的異常處理的重要性。這常常導致用戶的不便和失敗,最后不得不增加大量的代碼重寫工作。
結構化異常處理
VB.NET采用了.NET框架結構的錯誤報告的標準機制,也就是所謂的結構化異常處理;它根據異常來報告醫用程序中出現的錯誤。異常也就是一些能夠捕捉到錯誤信息的類。為了恰當的使用.NET的異常處理機制,開發人員需要編寫巧妙的代碼來密切觀察異常,同時也要編寫執行代碼來處理這些異常。
VB.NET結構化異常處理在代碼中提供如下部分:
Try 段:可以產生一個異常,并且總是能夠被執行到的代碼段
Catch段:試圖對一個異常做出處理,當異常發生時就會被執行的代碼段
Finally段:進行一些清理工作,并且總能被執行到的代碼段
異常類
.NET中的每一個異常類都是由System.Exception類派生的。異常類中使用最頻繁的成員如下:
消息:描述一個錯誤的具體信息
源:引起這個異常的對象或應用程序名
目標:處理異常的方法
Try...Catch區塊
Try...Catch區塊的目的是允許捕捉錯誤并為其指定一個具體的VB.NET結構化異常處理解決方法。代碼看起來就像下面這樣:
Try '被執行的代碼 Catch '錯誤解決代碼 Catch 結束
用Try段來寫那些要被執行到的代碼,而用Catch段來捕捉當執行Try段代碼時可能產生的錯誤,并做出相應的反應。在Try段中出現的保護代碼總會被執行到;但是,Catch段的代碼只有當錯誤發生時才會被執行。代碼的Try段總會被執行。
Try...Catch...Finally區塊
使用Try...Catch...Finally區塊的目的是允許執行Try段中被保護的代碼,對Catch區塊中可能的任何錯誤做出反應,并且在隨后的Finally區塊中還有清理代碼。無論Try代碼區塊是否有錯誤發生,Finally區塊中的代碼都會被執行到。這樣可以很方便的保證分配的資源會被釋放,并且可以方便地提供那些不論錯誤控制細節如何,都要需要被執行的各種功能的函數。代碼例子如下:
Try '執行代碼 Catch '錯誤解決代碼 Finally '清理代碼 Catch 結束
捕捉所有的異常和異常的具體類
VB.NET結構化異常處理是很靈活的,它允許捕捉一個具體類型的異常或者是任何類型的異常,這完全取決于我們怎么去使用它。
例子:捕捉任何可能發生的異常
Try Dim i As Integer = 0
Dim iresult As Integer iresult = 1 / i
把 ex 作為異常捕獲
MessageBox.Show(ex.ToString())
Finally MessageBox.Show("finally區塊被執行")
Try
結束
這是怎么運行的
在上面的VB.NET結構化異常處理代碼例子中,我們故意設立了一個運行錯誤,以此來證明可以捕捉到任何的異常。我們捕捉到發生的任何錯誤,對它做出反應,而不管錯誤的類型是什么。錯誤發生在Try代碼塊中,所以當異常產生時就接著執行Catch代碼塊,然后是Finally代碼塊。我們通過聲明一個異常類型的變量ex來捕捉這個異常。
例子:捕捉一個特定類型的異常
Try Dim i As Integer = 0
Dim iresult As Integer iresult = 1 / i
把 ex 作為溢出類型的異常捕獲
MessageBox.Show(ex.ToString())
Finally MessageBox.Show("finally區塊被執行")
Try
結束
這是怎么運行的
第二個代碼例子引起了同樣的錯誤,因為它試圖執行一個以0為除數的除法,這樣會引起溢出。但是,在這個例子中,我們僅僅有興趣捕捉這種類型的異常,所以把ex變量的類型具體定義為OverflowException類型。運行第二個例子的代碼結果和運行第一個例子一樣,因為在兩個例子中都捕捉到同樣的錯誤;但是,第二個例子不能捕捉到其它類型的異常(非溢出類型的異常)。但是像以前一樣,不論是否捕捉到異常,Finally區塊中的代碼都會被執行到。
結論
VB.NET結構化異常處理提供了很好的靈活性,應該合理地加以利用。一般來說,在我們開發應用程序時,錯誤控制不應該是最后才考慮的問題。反而,我們更應該注意建立好框架,在這個框架下建立每一個功能,這樣才能向用戶提供穩定可靠的應用程序。在我們的應用程序中應該小心地運用異常控制。
對于VB.NET語言來說,在實際編程中有一個非常重要的操作值得我們去注意,那就關于異常方面的處理。今天我們就可以通過VB.NET結構化異常處理的相關介紹,來仔細的分析一下異常方面的作用及應用方法。
概述
相較于VB語言來說,VB.NET引入了許多特色。其中最值得注意的變化就是引入了VB.NET結構化異常處理。雖然VB.NET仍然支持On Error Goto類型的異常處理,但是這樣做并不是很好。我們應該充分利用VB.NET提供的結構化異常處理。
本文將結合VB.NET結構化異常處理的基礎內容,并看一些在我們的應用程序中使用異常處理的例子。
合適的錯誤處理很重要
任何應用程序都需要一個恰當的異常處理。但是,由于嚴格的開發時間限制,責任共同承擔,和相沖突的優先級,開發人員常常忽視了組織有序、考慮周到的異常處理的重要性。這常常導致用戶的不便和失敗,最后不得不增加大量的代碼重寫工作。
結構化異常處理
VB.NET采用了.NET框架結構的錯誤報告的標準機制,也就是所謂的結構化異常處理;它根據異常來報告醫用程序中出現的錯誤。異常也就是一些能夠捕捉到錯誤信息的類。為了恰當的使用.NET的異常處理機制,開發人員需要編寫巧妙的代碼來密切觀察異常,同時也要編寫執行代碼來處理這些異常。
VB.NET結構化異常處理在代碼中提供如下部分:
Try 段:可以產生一個異常,并且總是能夠被執行到的代碼段
Catch段:試圖對一個異常做出處理,當異常發生時就會被執行的代碼段
Finally段:進行一些清理工作,并且總能被執行到的代碼段
異常類
.NET中的每一個異常類都是由System.Exception類派生的。異常類中使用最頻繁的成員如下:
消息:描述一個錯誤的具體信息
源:引起這個異常的對象或應用程序名
目標:處理異常的方法
Try...Catch區塊
Try...Catch區塊的目的是允許捕捉錯誤并為其指定一個具體的VB.NET結構化異常處理解決方法。代碼看起來就像下面這樣:
Try '被執行的代碼 Catch '錯誤解決代碼 Catch 結束
用Try段來寫那些要被執行到的代碼,而用Catch段來捕捉當執行Try段代碼時可能產生的錯誤,并做出相應的反應。在Try段中出現的保護代碼總會被執行到;但是,Catch段的代碼只有當錯誤發生時才會被執行。代碼的Try段總會被執行。
Try...Catch...Finally區塊
使用Try...Catch...Finally區塊的目的是允許執行Try段中被保護的代碼,對Catch區塊中可能的任何錯誤做出反應,并且在隨后的Finally區塊中還有清理代碼。無論Try代碼區塊是否有錯誤發生,Finally區塊中的代碼都會被執行到。這樣可以很方便的保證分配的資源會被釋放,并且可以方便地提供那些不論錯誤控制細節如何,都要需要被執行的各種功能的函數。代碼例子如下:
Try '執行代碼 Catch '錯誤解決代碼 Finally '清理代碼 Catch 結束
捕捉所有的異常和異常的具體類
VB.NET結構化異常處理是很靈活的,它允許捕捉一個具體類型的異常或者是任何類型的異常,這完全取決于我們怎么去使用它。
例子:捕捉任何可能發生的異常
Try Dim i As Integer = 0
Dim iresult As Integer iresult = 1 / i
把 ex 作為異常捕獲
MessageBox.Show(ex.ToString())
Finally MessageBox.Show("finally區塊被執行")
Try
結束
這是怎么運行的
在上面的VB.NET結構化異常處理代碼例子中,我們故意設立了一個運行錯誤,以此來證明可以捕捉到任何的異常。我們捕捉到發生的任何錯誤,對它做出反應,而不管錯誤的類型是什么。錯誤發生在Try代碼塊中,所以當異常產生時就接著執行Catch代碼塊,然后是Finally代碼塊。我們通過聲明一個異常類型的變量ex來捕捉這個異常。
例子:捕捉一個特定類型的異常
Try Dim i As Integer = 0
Dim iresult As Integer iresult = 1 / i
把 ex 作為溢出類型的異常捕獲
MessageBox.Show(ex.ToString())
Finally MessageBox.Show("finally區塊被執行")
Try
結束
這是怎么運行的
第二個代碼例子引起了同樣的錯誤,因為它試圖執行一個以0為除數的除法,這樣會引起溢出。但是,在這個例子中,我們僅僅有興趣捕捉這種類型的異常,所以把ex變量的類型具體定義為OverflowException類型。運行第二個例子的代碼結果和運行第一個例子一樣,因為在兩個例子中都捕捉到同樣的錯誤;但是,第二個例子不能捕捉到其它類型的異常(非溢出類型的異常)。但是像以前一樣,不論是否捕捉到異常,Finally區塊中的代碼都會被執行到。
結論
VB.NET結構化異常處理提供了很好的靈活性,應該合理地加以利用。一般來說,在我們開發應用程序時,錯誤控制不應該是最后才考慮的問題。反而,我們更應該注意建立好框架,在這個框架下建立每一個功能,這樣才能向用戶提供穩定可靠的應用程序。在我們的應用程序中應該小心地運用異常控制。
?
轉載于:https://www.cnblogs.com/st2012/archive/2012/04/06/2435413.html
總結
以上是生活随笔為你收集整理的什么是VB.NET的结构化异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女子面包中吃出2厘米带锈刀片上热搜 网友
- 下一篇: 一女子电单车电池仓藏 28 台旧 iPh