相对于VB而言,VB.NET中引入了不少特点。当中最吸引个人就是引入告终构化异常处理。编程
尽管VB.NET仍然支持OnError Goto类型的异常处理,但是这样作并不是很是好。相比而言,结构化异常处理更加灵活,使用更加方便。咱们应该充分利用VB.NET提供的结构化异常处理。安全
在VB.NET结构中的异常处理分为3个语句块。函数
(1)try块负责错误代码的捕获spa
(2)catch进行错误的处理code
(3)finally负责错误处理后的兴许工做如:释放对象、清理资源等的工做。orm
使用这些区块的目的是赞成执行Try模块中被保护的代码,对catch,对catch区块中可能分不论什么错误作出反应。并且在随后的Finally块中还有清理代码。无论Try代码块是否有发生错误,Finally块的代码都会被执行到,这样可以很是方便的保证分配的资源会被释放,并且可以方便地提供那些不论错误控制细节怎样,都需要被执行的各类功能的函数。但是,Catch语句块不必定执行,假设Try块内的代码没有错误,没有抛出异常的话,Catch语句块中的代码是不执行的。而是跳过Catch块直接执行Finally块中的清理工做。对象
反之假设遇到了异常Catch语句块中的处理工做就要进行。blog
如下举个实例:ip
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim file As System.IO.FileStream, msg As String Try file = New System.IO.FileStream("D:\readme.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read) file.Close() Catch ex As Exception msg = String.Format("{0}ralsed exception :{1}", ex.Source, ex.Message) MessageBox.Show(msg, "My App", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally If Not file Is Nothing Then file.Close() End Try End Sub这个样例是在 D盘找到一个readme.txt文档。假设咱们在D盘中没有创建这个文档,那么就会运行Catch语句,会弹出出错的来源和缘由:
假设咱们在D盘创建一个readme.txt文档。那么就不会有发生错误,那么不会运行Catch语句。跳到Finally中运行。资源
在现在,开发者常常忽视了组织有序。考虑周到的异常处理的重要性,常常致使用户的不便和失败。
咱们未来假设要作合格的开发者,异常处理对咱们来讲是相当重要的。
它是.NET平台重要的安全机制,将错误代码的接受和处理的进行了完美的分离。理清了编程者的思绪,也帮助代码加强了可读性,方便了维护者的阅读和理解,而且还提供了处理程序执行时出现的不论什么意外或异常状况的方法。