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语句块中的处理工作就要进行。
下面举个实例:
![](http://img.blog.csdn.net/20140519152104750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDUzOTM1Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
如果我们在D盘建立一个readme.txt文档,那么就不会有错误发生,那么不会执行Catch语句,跳到Finally中执行。
在现在,开发人员常常忽视了组织有序,考虑周到的异常处理的重要性,常常导致用户的不便和失败。我们将来如果要做合格的开发人员,异常处理对我们来说是至关重要的。它是.NET平台重要的安全机制,将错误代码的接受和处理的进行了完美的分离,理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解,而且还提供了处理程序运行时出现的任何意外或异常情况的方法。
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平台重要的安全机制,将错误代码的接受和处理的进行了完美的分离,理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解,而且还提供了处理程序运行时出现的任何意外或异常情况的方法。
相关文章推荐
- VB.NET之错误异常处理
- ASP.NET错误异常分类处理 过滤请求内容
- .NET中错误中异常处理的表达方式
- ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”
- 代码阅读总结之Fitch and Mather 7.0(asp.net发生异常或错误时错误提示页面的处理方法)
- asp.net访问access 发生了未处理的异常 "操作必须使用一个可更新的查询"错误
- VB.NET异常处理及抛出异常
- ASP.NET AJAX 异常处理及在客户端显示用户用好的错误信息
- ASP.NET 4.0 生成 eurl.axd Http异常错误的处理方法
- Asp.Net : 捕捉和记录网站中出现的所有未处理错误,抛出详细的页面来源和访问ip,调用的接口方法及异常实例(记事本日志,系统日志及数据库日志)
- ASP.NET生成eurl.axd Http异常错误处理方法
- ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面
- [VB.NET].net Framework 客户端运行错误 是“公共语言运行库调试”报错误异常
- ASP.NET生成eurl.axd Http异常错误的处理方法
- VB.Net 2003 “应用程序生成了一个无法处理的异常”故障分析与解决
- ASP.NET 4.0 生成 eurl.axd Http异常错误的处理方法 (汗IIS 怎这么多莫名其妙的问题)
- VB.Net - 异常处理
- VB.NET 异常处理及抛出异常
- ASP.NET生成eurl.axd Http异常错误处理方法【转】
- ASP.NET生成eurl.axd Http异常错误处理方法