`
wangdeshui
  • 浏览: 255670 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#拾遗系列(8):异常

阅读更多

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

    public class TestException

    {

        public void TestThrow()

        {

            //try 块必须与 catch 或 finally 块一起使用,并且可以包括多个 catch 块

            try

            {

                CustomException ex = new CustomException("test custom exception");

                ex.ModuleName = "Front-End";

                throw ex;

            }

            /*

            多个 catch 块可以串联在一起。多个 catch 块的计算顺序是从顶部到底部

            但是,对于所引发的每个异常,都只执行一个 catch 块。

            与所引发异常的准确类型或其基类最为匹配的第一个 catch 块将被执行。

            如果没有任何 catch 块指定匹配的异常筛选器,则将执行不带筛选器的 catch 块(如果有的话)。

            需要将带有最具体的(即派生程度最高的)异常类的 catch 块放在最前面

           */

            catch (CustomException ex)

            {

                System.Console.Out.WriteLine(ex.Message + "Module is:" + ex.ModuleName);

                System.Console.Out.WriteLine("------------------------------");

                System.Console.Out.WriteLine(ex.ToString());

            }

            catch (Exception ex)

            {

                System.Console.Out.WriteLine(ex.Message);

            }

 

            //Finally 块可让程序员清理中止的 try 块可能留下的任何不明确状态,

            //或释放任何外部资源(如图形句柄、数据库连接或文件流)

            //而不用等待运行库中的垃圾回收器来终结这些对象,finally块任何情况都执行

            finally

            {

                // Code to execute after try (and possibly catch) here

                System.Console.Out.WriteLine("test complete");

            }

        }

    }

 

    //自定义的异常

    [Serializable]

    class CustomException : Exception

    {

 

        public CustomException(string message):base(message)

        {           

        }

        public string ModuleName { get; set; }

 

        public override string ToString()

        {

            return base.ToString() + this.ModuleName.ToString();

        }

    }

}

分享到:
评论

相关推荐

    《.NET-C#面试手册》

    .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF! .NET/C#⾯试题汇总系列:多线程 .NET/C#⾯试题汇总系列:ASP.NET MVC .NET/C# ⾯试题汇总系列:ASP.NET Core .NET/C#⾯试题汇总系列:ADO.NET、XML、...

    C#射击类游戏:龙之战(源码)

    开发语言:C# 参考网络上流传的《勇者斗恶龙》游戏源码制作的一个射击类游戏,借用了《勇者斗恶龙》的游戏界面及部分源码。 整个游戏框架已基本完成,源码中采用了一些设计模式,有精美的游戏画面和详尽的代码注释,...

    C# 捕获C/C++异常的例子

    在本文中,我们将深入探讨如何在C#环境中捕获源自C/C++代码的异常,这对于跨语言开发或者使用C++库的C#项目至关重要。 C# 提供了一套强大的异常处理机制,它基于`try-catch`块来捕获和处理运行时错误。然而,C++的...

    Modern C#系列课程(5):C# 中的异常处理

    在"Modern C#系列课程(5):C# 中的异常处理"中,我们将深入探讨如何在C#中有效地管理异常,以提高代码的可读性和可维护性。 首先,我们要了解什么是异常。在C#中,异常是程序运行时遇到的问题,如除零错误、文件未...

    C# .net Aop 动态截获异常

    本主题将深入探讨如何使用C#和AOP来动态截获异常,以实现更高级别的错误处理和监控。 首先,AOP(Aspect Oriented Programming)是一种编程范式,它允许程序员将关注点(如日志记录、事务管理、异常处理等)分离...

    C#的Demo项目:RabbitMQ封装和使用

    为了封装RabbitMQ.Client库,你可以创建一个RabbitMQService类,提供一系列的静态方法,如发送消息、接收消息、声明交换机、声明队列等。这样,其他业务代码可以直接调用这些方法,而无需关心底层的实现细节。 总结...

    C#学习路线图:C#必须知道的300个问题 高清版[带完整书签]

    本书内容包括C#语言及其开发环境、掌握C#语言基础、流程控制语句、字符与字符串、数组和集合、C#面向对象程序设计、异常处理和程序调试、Windows窗体、Windows应用程序常用控件、Windows应用程序高级控件、c撑面向...

    C#异常处理总结及简单实例

    C#异常处理总结及简单实例 一、异常处理的理解? 异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常。 因此处理这种错误,就称为异常处理。 二、异常处理如何操作? C# 异常处理时建立在...

    Modern C#系列课程(5):C# 中的异常处理 (Level 200)

    Modern C#系列课程(5):C# 中的异常处理 (Level 200) 讲 师:俞晖 MSDN 特邀讲师 课程简介:本次课程是系列课程《现代软件开发——使用.NET与C#》的第五讲, 这次系列讲座的目的是为希望从Java, VB6和C++...

    C#调用C++动态DLL

    总的来说,调用C++动态DLL在C#中是一项复杂但重要的任务,它涉及到跨语言的接口定义、平台调用、异常处理以及数据类型转换等多个环节。理解并熟练掌握这些步骤,将有助于你构建更强大的跨语言应用程序。

    编程学C#(1):VS2010 C# Access数据库管理程序

    编程学C#(1):VS2010 C# Access数据库管理程序,1. 基于VS2010 C# 的的Access数据库管理设计; 2. 数据集的创建; 3. .NET组件,dataGridview 控件的使用; 4. 数据库的插入、删除、查询操作设计。

    用c#实现图像处理:获取一幅图片的像素值及RGB分量

    在C#中实现图像处理是一项常见的任务,尤其是在游戏开发、图像分析、图形用户界面设计等领域。本教程将深入探讨如何获取一幅图片的像素值及其RGB(红绿蓝)分量。首先,我们需要了解一些基本概念。 图像本质上是由...

    c# 自定义异常 Exception

    在C#编程中,异常处理是一项关键功能,它允许开发者优雅地处理程序运行时可能出现的错误情况。标准的C#库提供了多种内置异常类型,如`System.NullReferenceException`、`System.IO.FileNotFoundException`等,但有时...

    c#异常含异常格式,抛出异常和自定义异常

    在C#编程中,异常处理是一项至关重要的技能,它能够帮助开发者优雅地处理程序运行时可能出现的错误,保证程序的健壮性和稳定性。本篇将深入探讨“异常格式”,“抛出异常”以及“自定义异常”这三大知识点。 首先,...

    C#与三菱Q系列PLC通讯,三菱q系列PLC之间通讯,C#

    6. **错误处理和重试机制**:考虑到工业环境的不确定性,你的C#程序应包含错误处理机制,如超时重试、异常捕获等,以确保通讯的稳定性。 7. **线程安全和异步操作**:为了提高系统性能,你可能会考虑使用异步操作来...

    C#+WinForm视频播放器(AxWindowsMediaPlayer) C# 源代码

    C# 源代码 功能:使用Windows Media Player播放音乐,视频,支持 WAV、MID、MP3、MPG、AVI、ASF、WMV、RM、RMVB等文件。 技术:C# + WinForm 版本:Microsoft Visual Studio 2008 上开发 实现功能: 1.选择文件播放 ...

    C#解决SQlite并发异常问题的方法(使用读写锁)

    本文实例讲述了C#解决SQlite并发异常问题的方法。分享给大家供大家参考,具体如下: 使用C#访问sqlite时,常会遇到多线程并发导致SQLITE数据库损坏的问题。 SQLite是文件级别的数据库,其锁也是文件级别的:多个线程...

Global site tag (gtag.js) - Google Analytics