自定义异常示例

更新:2007 年 11 月

该解决方案演示两种更高级的异常管理技术:自定义异常和全局异常处理。

获取示例及其安装说明

  • 执行下列一项或多项操作:

    • 在“帮助”菜单上,单击“示例”。

      自述文件将显示有关示例的信息。

    • 访问 Visual Studio 2008 示例网站。该网站提供了最新版本的示例。

    • 在安装了 Visual Studio 的计算机上查找示例。默认情况下,示例和自述文件安装在驱动器号:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。对于 Visual Studio 的速成版,所有示例都可联机找到。

有关更多信息,请参见定位示例文件

安全说明:

此示例代码用于阐释概念,因此仅显示与此概念相关的代码。该代码可能不符合特定环境的安全要求,因此不应原样搬用所显示的代码。我们建议您添加安全性代码和错误处理代码,以使项目更加安全可靠。Microsoft“按原样”提供此示例代码,不提供任何保证。

运行此示例

  1. 在“解决方案资源管理器”中,右击“客户端”项目并选择“设为启动项目”。

  2. 按 Ctrl+F5。最好在调试器之外运行该程序,以便查看全局异常处理程序的效果。

演示

此示例包含两个项目:一个 Windows 窗体客户端和一个类库。

类库(服务器)

类库定义 Customer 和一组用于公开应用程序定义的错误的自定义异常类。异常类通过继承等级结构相关。基类是从 ApplicationException 继承的 CRMSystemException。CustomerException 和 EmployeeException 继承自 CRMSystemException。还有两个从 CustomerException 继承的异常:CustomerNotFoundException 和 CustomerNotDeletedException。每个类公开不同级别的信息和功能。

客户端代码

客户端应用程序有对类库的引用。两个命令按钮对 Customer 类执行方法,并捕获自定义异常。第三个命令按钮将导致未处理的异常。此外,还有一个标记为“打开全局异常捕获”的复选框,此复选框用于启用全局异常捕获。启用此复选框时,将执行在 OnThreadException 方法中定义的代码,而不是默认的 Windows 窗体处理程序。

请参见

参考

ApplicationException

ThreadException

OnThreadException

Try...Catch...Finally 语句 (Visual Basic)

其他资源

Visual Basic 中的结构化异常处理