科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual Basic .NET 中的异常处理简介

Visual Basic .NET 中的异常处理简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文简单介绍了 Visual Basic .NET 中的结构化异常处理和非结构化异常处理。文中包括了各种注意事项......

作者:佚名 来源:Microsoft 2007年11月10日

关键字: Visual Basic 异常处理

  • 评论
  • 分享微博
  • 分享邮件
简介

  只有极其优秀的程序员才能一步到位地编写出完美的代码,其他程序员必须经过不断的修改才能开发出成功的应用程序。

  幸运的是,Microsoft? Visual Basic? .NET 提供了两种处理异常的方法。第一种是非结构化异常处理,它符合 Visual Basic 早期版本中的异常处理规则。第二种是结构化异常处理,类似于 Microsoft? Visual C#? 或 Microsoft? Visual C++? 中的异常处理方式。

  本文简单介绍了结构化异常处理和非结构化异常处理,面向的读者是 Visual Basic 初级开发人员,或者从 Visual Basic 早期版本转换到 Visual Basic .NET 的开发人员。文中包括了各种注意事项,可帮助您选择正确的异常处理选项、各选项涉及的步骤、如何创建自己的异常以及异常对象的属性。阅读本文后,您将了解如何以及何时在代码中加入异常处理。

  “错误”和“异常”的定义

  术语“错误”和“异常”经常被混用。实际上,错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象。当错误中断流程时,该程序将尝试寻找异常处理程序(一段告诉程序如何对错误做出响应的代码),以帮助程序恢复流程。换句话说,错误是一个事件,而异常是该事件创建的对象。

  程序员使用短语“产生异常”时,表示存在问题的方法发生错误,并创建异常对象(包含该错误的信息及发生的时间和位置)来响应该错误。导致出现错误和随后异常的因素包括用户错误、资源失败和编程逻辑失败。这些错误与代码实现特定任务的方法有关,而与该任务的目的无关。

  针对本文的目的,“异常处理”的意思是解释和响应因错误而产生的异常。

  结构化异常处理和非结构化异常处理 - 分别在什么情况下使用

  简单来说,结构化异常处理就是使用包含异常、单独的代码块和筛选器的控制结构创建异常处理机制。它使代码可以区分不同的错误类别,并根据相应的情况做出响应。在非结构化异常处理中,代码开始处的 On Error 语句将处理所有的异常。

  与非结构化异常处理相比,结构化异常处理更强大,更具普遍性和灵活性。如有可能,请尽量使用结构化异常处理。然而,在以下情况下可能需要使用非结构化异常处理:

  • 升级使用 Visual Basic 早期版本编写的应用程序时。
  • 开发应用程序的初期版本或草稿版本,而且,即使程序不能正常关闭您也不会介意。
  • 事先已确切知道将导致出现异常的原因。
  • 迫于截止日期而需要走捷径。
  • 代码非常琐碎或者太短,只需要测试其中产生异常的代码部分。
  • 需要使用 Resume Next 语句,而结构化异常处理不支持该语句。

  不能在同一个函数中将结构化异常处理和非结构化异常处理组合使用。如果使用了 On Error 语句,则不能在同一个函数中使用 Try...Catch 语句。

  不管在代码中使用哪种异常处理,都必须回退一步先检查代码假设的条件。例如,当应用程序要求用户输入电话号码时,以下假设开始起作用:

  • 用户必须输入数字而不是字符。
  • 输入的号码必须符合某种格式。
  • 用户不能输入空字符串。
  • 用户只能输入一个电话号码。

  用户的输入可能会不符合上述一条或全部假设。完善的代码需要足够的异常处理,以允许在违反上述假设的情况下恢复应用程序。

  除非能够确保您的方法在任何情况下都不会产生异常,否则请考虑使用信息性异常处理。异常处理应该直观。除了指出产生错误以外,异常处理产生的消息中还应指示错误产生的原因及其位置。诸如“发生错误”之类的毫无意义的消息只能使用户感到失望。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章