vb.net中的出錯處理是使用excetions而不是ON Error GOTO語法來實現的,ON Error GOTO現在已經不支持了,Visual Basic現在提供一個結構化的出錯處理過程,使用Try...Catch...Finally表述。結構化的出錯處理過程是和exceptions有關的,類似於Select Case或者While的一個具有選擇關系的代碼結構。這使得程序的代碼更具有健壯性,可以進行更加復雜的錯誤處理。exceptions的運行機理是這樣的,當有錯誤出現時,錯誤處理過程就會屏蔽掉使得在Try模塊中產生錯誤的運行代碼,並且使用Catch表述來獲取錯誤,語法如下:
首先,運行Try模塊中的代碼,如果沒有錯誤的話就接著運行Finally模塊裡的代碼,如果有錯誤的話,就運行Catch模塊裡的代碼,在Catch模塊裡用戶可以做出一些出錯處理,然後接著運行Finally模塊裡的代碼並退出整個模塊。
下面的例子就是顯示怎樣進行出錯處理的設置,當用戶訪問一個數組列表時,超過列表的長度以後,就會產生一個錯誤,代碼如下:
上面的例子把錯誤信息打印出來,並且指出代碼產生錯誤的位置,並且繼續運行下去。下面就是運行的結果:
相反,如果用戶不進行錯誤處理的話,將在運行的時候從系統得到錯誤的信息,並且直接退出運行環境,而不是繼續運行下去。系統將會出現如下錯誤信息: