相对于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之错误异常处理的更多相关文章

  1. PHP7语法知识(三):时间与日期、表单、类与对象、正则表达式、错误异常处理、图像处理

    时间与日期 一.设置时区 1.在配置文件中设置: 2.通过data_default_timezone_set函数在文件中设置: 二.获取当前时间 三.常用时间处理方法 1.格式化时间显示: 2.计算时 ...

  2. 【六】php 错误异常处理

    错误异常处理 概念:代码在try代码块被调用执行,catch代码块捕获异常 异常需要手动抛出 throw new Exception (‘message’,code) throw将出发异常处理机制 在 ...

  3. EBS OAF开发中的错误/异常处理(ErrorHandling) (转)

    原文地址 EBS OAF开发中的错误/异常处理(ErrorHandling) EBS OAF开发中的错误/异常处理(ErrorHandling) (版权声明,本人原创或者翻译的文章如需转载,如转载用于 ...

  4. 2017.10.28 针对Java Web应用中错误异常处理方法的运用

    针对Java Web应用中错误异常处理方法的运用 在javaweb中其异常都需要对Checked Exception之下的Exception进行继承,并且有选择地对发生的错误和异常进行处理.Java同 ...

  5. 从C#到Objective-C,循序渐进学习苹果开发(4)--代码块(block)和错误异常处理的理解

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从 ...

  6. python学习第十八天 --错误&异常处理

    这一章节主要讲解python的错误和异常处理 什么是错误和异常?及其区别? 错误: 1.语法错误:代码不符合解释器或者编译器语法. 2.逻辑错误:不完整或者不合法输入或者计算出现问题.   异常:执行 ...

  7. PHP错误异常处理详解【转载】

    异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法. 异常处理通常是防止未知错误产生所采取的处理措施.异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了 ...

  8. 自定义php错误异常处理

    set_exception_handler() 函数设置用户自定义的异常处理函数. 该函数用于创建运行时期间的用户自己的异常处理方法. 该函数会返回旧的异常处理程序,若失败,则返回 null. set ...

  9. python 全栈开发,Day30(纸牌游戏,异常和错误,异常处理)

    一.纸牌游戏                                                                                              ...

随机推荐

  1. 直接插入排序、折半插入排序、Shell排序、冒泡排序,选择排序

    一.直接插入排序 稳定,时间复杂度:最好O(n).最差O(n^2).平均O(n^2).空间复杂度O(1) void InsertSort(int L[], int n) { int i, j,key; ...

  2. freemarker 里 ?? 和 ? 都是什么意思

    ??是推断对象是否为空,比如:<#if object??>object对象不为空(即object存在)</#if> ?后面要加keyword,比如:<#if object ...

  3. 数据验证validator 与 DWZ

    在进行系统经常使用的数据验证.数据验证可以编写自己的,它也可以用来作为现在.现在,记录这两个库的使用, validator <!DOCTYPE HTML PUBLIC "-//W3C/ ...

  4. Outlook将收到邮件的附件保存在磁盘

    1. 新建一个宏 1)文件->选项->自定义功能区, 把主选项卡的 开发工具勾选上. 2)开发工具->宏,输入宏名,创建. 加入以下代码 Public Sub SaveAttach( ...

  5. Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)

    Qt/C++开发人员眼中的Obj-C      对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C相关语法与知识 为了让读者可以更easy理解这 ...

  6. Jenkins(两)

    官网:https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins 我的这篇文章不过简单的依据上文,介绍Jenkins提供了哪些功能.详细大家还是要 ...

  7. HDU 4288 Coder (线段树)

    Coder 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4288 题意:有三种类型的操作,(1)."add x",表示往集合里加入�数 ...

  8. Android使用的开发MediaRecorder录制声音

    至 Android 录制声音的应用,Android提供 MediaRecorder 类别.大约MediaRecorder可以参考一个特定的解释<Android开发之MediaRecorder类具 ...

  9. leetcode——Evaluate Reverse Polish Notation 求算式值(AC)

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  10. [MSSQL]最小公约数

    [摘要]一个朋友在展BOM的时候有这种需求,两列字段(数值):A ,B   A=用量,B=底数,组成用量=用量/底数.A/B,若能被整除,显示整除的结果,若不能整除显示分数形式A/B(分数形式要是约分 ...