您的位置:首页 > 编程语言 > VB

VB.NET之错误异常处理

2014-05-19 15:06 302 查看
相对于VB而言,VB.NET中引入了许多特色。其中最吸引我的就是引入了结构化异常处理。虽然VB.NET仍然支持OnError
Goto类型的异常处理,但是这样做并不是很好。相比而言,结构化异常处理更加灵活,使用更加方便。我们应该充分利用VB.NET提供的结构化异常处理。
在VB.NET结构中的异常处理分为3个语句块。
(1)try块负责错误代码的捕获
(2)catch进行错误的处理
(3)finally负责错误处理后的后续工作如:释放对象、清理资源等的工作。
使用这些区块的目的是允许执行Try模块中被保护的代码,对catch,对catch区块中可能分任何错误做出反应,并且在随后的Finally块中还有清理代码。无论Try代码块是否有错误发生,Finally块的代码都会被执行到,这样可以很方便的保证分配的资源会被释放,并且可以方便地提供那些不论错误控制细节如何,都需要被执行的各种功能的函数。但是,Catch语句块不一定运行,如果Try块内的代码没有错误,没有抛出异常的话,Catch语句块中的代码是不运行的,而是跳过Catch块直接运行Finally块中的清理工作。反之如果遇到了异常Catch语句块中的处理工作就要进行。
下面举个实例:

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平台重要的安全机制,将错误代码的接受和处理的进行了完美的分离,理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解,而且还提供了处理程序运行时出现的任何意外或异常情况的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: