加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB.NET之错误异常处理

发布时间:2020-12-17 07:56:20 所属栏目:百科 来源:网络整理
导读:相对于 VB 而言, VB.NET 中引入了许多特色。其中最吸引我的就是引入了结构化异常处理。虽然 VB.NET 仍然支持 On Error Goto 类型的异常处理,但是这样做并不是很好。相比而言,结构化异常处理更加灵活,使用更加方便。我们应该充分利用 VB.NET 提供的结构化

相对于VB而言,VB.NET中引入了许多特色。其中最吸引我的就是引入了结构化异常处理。虽然VB.NET仍然支持OnError Goto类型的异常处理,但是这样做并不是很好。相比而言,结构化异常处理更加灵活,使用更加方便。我们应该充分利用VB.NET提供的结构化异常处理。

VB.NET结构中的异常处理分为3个语句块。

1try块负责错误代码的捕获

2catch进行错误的处理

3finally负责错误处理后的后续工作如:释放对象、清理资源等的工作。

使用这些区块的目的是允许执行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平台重要的安全机制,将错误代码的接受和处理的进行了完美的分离,理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解,而且还提供了处理程序运行时出现的任何意外或异常情况的方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读