• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#异常处理详解

C#异常处理详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#异常处理,c#异常处理机制,c#未经处理的异常,c#中异常处理,c#自定义异常处理等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

异常介绍

1、System.Exception类

Message属性:发生异常的原因和异常的内容

Souce属性:抛出异常程序集的名称

StackTrace属性:发生异常的方法调用情况

InnerException属性:次异常中包含的异常


2、try{}catch{}finally{}

处理异常

a、不带参数的catch和catch(Exception)是有区别的

catch(Exception)可以捕获所有以Exception类派生的异常,而不带参数的catch可以捕获所有异常,不管异常是不是从Exception类派生。

b、与catch配套的catch和finally是可选的,但二者必选其一。一个try可对应多个catch,但一个try只能对应一个finally。

c、不论try中是否发生异常,finally中的语句一定会被执行。

异常传播

如果异常发生后,没有被相应的catch捕获,那么异常将沿调用堆栈逐渐向上传递,直到遇到合适的catch语句或传递到最底层的调用方法为止。如都没有找到相应的catch,则异常交付.net公共语言运行时,公共语言运行时弹出一个对话框来显示异常信息。


抛出异常throw

1、throw 变量名;

必须是Exception异常或有Exception派生的类型

2、throw;

这个throw语句只有一个throw关键字,只能用在catch语句块中,该语句的意思是抛出当前catch语句所捕获的异常。

自定义异常

遵循原则

1、避免使用深的异常类继承层次结构

2、自定义异常类必须继承System.Exception类或其他几种基本常见异常类

3、自定义异常类名称要以Exception结尾

4、自定义异常类应该可以序列化

5、自定义异常类应该至少实现与Exception类相同的以下四个构造函数

public MyException(string message){}

public MyException(string message,Exception inner){}

protected MyException(System.Runtime.Serialization.SerializationInfoinfo,System.Runtime.Serialization.StreamingContext context){}
</div>
6、自动插入自定义异常类框架

在编辑器中输入Exception并按键,即可得到自定义异常类框架。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#的回调机制浅析
  • C#异常处理的一些经验和技巧
  • C#异常处理详解

相关文章

  • 2017-05-28c#实现pdf的另存为功能
  • 2017-05-28c#使用nsoup解析html乱码解决方法分享 nsoup教程
  • 2017-05-28C#中把英文字母转换为大写或小写的方法
  • 2017-05-28C#使用semaphore来管理异步下载请求的方法
  • 2017-05-28分享WCF聊天程序--WCFChat实现代码
  • 2017-05-28C#通过流写入一行数据到文件的方法
  • 2017-05-28c#数据的序列化和反序列化(推荐版)
  • 2017-05-28C#路径,文件,目录及IO常见操作汇总
  • 2017-05-28c#裁剪图片后使用zxing生成二维码示例分享
  • 2017-05-28C#调用执行外部程序的实现方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#遍历操作系统下所有驱动器的方法
    • C#基于数据库存储过程的AJAX分页实例
    • C#反色处理及其效率问题分析
    • C#导出网站功能实例代码讲解
    • C#简单实现显示中文格式星期几的方法
    • DevExpress实现禁用TreeListNode CheckBox的方法
    • C#生成随机数功能示例
    • C#中字符串编码处理
    • c# 空合并运算符“??”的使用详解
    • C#获取Word文档中所有表格的实现代码分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有