VB.NET之错误异常处理
相对于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语句,会弹出出错的来源和原因:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDUzOTM1Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
假设我们在D盘建立一个readme.txt文档。那么就不会有发生错误,那么不会运行Catch语句。跳到Finally中运行。
在如今,开发者经常忽视了组织有序。考虑周到的异常处理的重要性,经常导致用户的不便和失败。
我们将来假设要做合格的开发者,异常处理对我们来说是至关重要的。
它是.NET平台重要的安全机制,将错误代码的接受和处理的进行了完美的分离。理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解,并且还提供了处理程序执行时出现的不论什么意外或异常情况的方法。
VB.NET之错误异常处理的更多相关文章
- PHP7语法知识(三):时间与日期、表单、类与对象、正则表达式、错误异常处理、图像处理
时间与日期 一.设置时区 1.在配置文件中设置: 2.通过data_default_timezone_set函数在文件中设置: 二.获取当前时间 三.常用时间处理方法 1.格式化时间显示: 2.计算时 ...
- 【六】php 错误异常处理
错误异常处理 概念:代码在try代码块被调用执行,catch代码块捕获异常 异常需要手动抛出 throw new Exception (‘message’,code) throw将出发异常处理机制 在 ...
- EBS OAF开发中的错误/异常处理(ErrorHandling) (转)
原文地址 EBS OAF开发中的错误/异常处理(ErrorHandling) EBS OAF开发中的错误/异常处理(ErrorHandling) (版权声明,本人原创或者翻译的文章如需转载,如转载用于 ...
- 2017.10.28 针对Java Web应用中错误异常处理方法的运用
针对Java Web应用中错误异常处理方法的运用 在javaweb中其异常都需要对Checked Exception之下的Exception进行继承,并且有选择地对发生的错误和异常进行处理.Java同 ...
- 从C#到Objective-C,循序渐进学习苹果开发(4)--代码块(block)和错误异常处理的理解
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从 ...
- python学习第十八天 --错误&异常处理
这一章节主要讲解python的错误和异常处理 什么是错误和异常?及其区别? 错误: 1.语法错误:代码不符合解释器或者编译器语法. 2.逻辑错误:不完整或者不合法输入或者计算出现问题. 异常:执行 ...
- PHP错误异常处理详解【转载】
异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法. 异常处理通常是防止未知错误产生所采取的处理措施.异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了 ...
- 自定义php错误异常处理
set_exception_handler() 函数设置用户自定义的异常处理函数. 该函数用于创建运行时期间的用户自己的异常处理方法. 该函数会返回旧的异常处理程序,若失败,则返回 null. set ...
- python 全栈开发,Day30(纸牌游戏,异常和错误,异常处理)
一.纸牌游戏 ...
随机推荐
- windows phone (23) ScrollViewer元素
原文:windows phone (23) ScrollViewer元素 ScrollViewer类表示可包含其他可见元素的可滚动区域,一般会用在屏幕的宽度和高度不够用时,作为一种延伸使用,参考书上称 ...
- windows phone (17) ManipulationDelta事件
原文:windows phone (17) ManipulationDelta事件 ManipulationDelta事件会是在触摸位置发生变化是引发,比如可以根据用户在触摸屏中移动的位置,图片发生相 ...
- nginx subrequest演示示例程序
只有简单subrequest应用演示示例. nginx.conf文件: #user nobody; worker_processes 1; #error_log logs/error.log; #er ...
- 高仿快车100--实战RadioGroup和RadioButton应用
1.RadioButtonCheckBox的差别: a.单个RadioButton在选中后,通过点击无法变为未选中 单个CheckBox在选中后.通过点击能够变为未选中 b.一组RadioButton ...
- Quartz.NET学习系列
Quartz.NET它是一个开源的任务调度引擎,对于周期性任务,持久性任务提供了很好的支持,并且支持持久性.集群等功能. 这是什么对我来说Quartz.NET学习记录: 源代码下载http://yun ...
- Ewebeditor最新漏洞和漏洞指数
Ewebeditor最新漏洞和漏洞指数[收集] 来源:转载作者:佚名时间:2009-06-03 00:04:26 下面文章收集转载于网络:) 算是比較全面的ewebeditor编辑器的漏洞收集,如今的 ...
- WPF 引用DLL纯图像资源包类库中的图片
原文:WPF 引用DLL纯图像资源包类库中的图片 1.建立WPF应用程序 过程略. 2.创建类库项目(图片资源包) 创建图片资源类库项目MyImages,删除 ...
- 重新想象 Windows 8 Store Apps (21) - 动画: ThemeTransition(过渡效果)
原文:重新想象 Windows 8 Store Apps (21) - 动画: ThemeTransition(过渡效果) [源码下载] 重新想象 Windows 8 Store Apps (21) ...
- effective c++ 条款12 copy all parts of an object
这经常发生在更改代码的时候,当有自己的copy 赋值函数或者copy 构造函数时,编译器就不会维护这两个函数.导致发生遗忘. 可能出现的场景 class Customer { private: std ...
- Apple Watch 1.0 开发介绍 1.1 简介 开发苹果手表
使用Apple Watch,用户可以使用一种不显眼的方式查看信息.不用把iPhone从口袋里拿出来,就可以通过看一下手表快速获得重要信息. 作为Apple Watch的第三方app开发者,应该通过使用 ...