当前位置:  编程技术>.net/c#/asp.net

C#异常处理详解

    来源: 互联网  发布时间:2014-10-23

    本文导语:  异常介绍 1、System.Exception类 Message属性:发生异常的原因和异常的内容 Souce属性:抛出异常程序集的名称 StackTrace属性:发生异常的方法调用情况 InnerException属性:次异常中包含的异常 2、try{}catch{}finally{} 处理异常 a、不带参数...

异常介绍

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(){}

public MyException(string message){}

public MyException(string message,Exception inner){}

protected MyException(System.Runtime.Serialization.SerializationInfoinfo,System.Runtime.Serialization.StreamingContext context){}


6、自动插入自定义异常类框架

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


    
 
 

您可能感兴趣的文章:

  • C# 执行bat批处理文件的小例子
  • c# URL参数传递时包含“&”符号的处理方法
  • C#事件处理和委托event delegate实例简述
  • c# 调用批处理(bat)的实现代码
  • C# WinForm窗体编程中处理数字的正确操作方法
  • C#中执行批处理文件(*.bat)的方法代码
  • C#控制台程序中处理2个关闭事件的代码实例
  • C#事务处理(Execute Transaction)实例解析
  • c#异常处理示例分享
  • c#实现sqlserver事务处理示例
  • C# datatable 不能通过已删除的行访问该行的信息处理方法
  • C#异常处理的一些经验和技巧
  • C# Socket粘包处理讲解示例
  • C# WinForm捕获未处理的异常实例解析
  • c# 批处理调用方法(实例)
  • C# 批处理调用方法
  • C#处理JPEG头信息的方法
  • c#图片处理之图片裁剪成不规则图形
  • C# 事件处理学习心得
  • C#实现对Json字符串处理实例
  • MySQL数据入库时特殊字符处理详解
  • Sql Server使用cursor处理重复数据过程详解
  • php事务处理实例详解
  • 深入Android SQLite 事务处理详解
  • 解析jdbc处理oracle的clob字段的详解
  • C#处理JPEG头信息的实例详解
  • PHP图片处理类 phpThumb参数用法详解
  • 深入分析C#中处理和键盘相关事件的详解
  • php中pdo错误处理方法详解
  • 解析使用jdbc,hibernate处理clob/blob字段的详解
  • C++之异常处理详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c/c++预处理命令预#error介绍
  • 关于linux内核中信号处理的问题?(信号处理的时间)
  • c/c++预处理命令预#undef介绍
  • 如何让批处理文件执行完毕后窗口不关闭,批处理文件直接点击执行
  • c/c++预处理命令预#pragma介绍
  • 视频处理问题,用批处理对视频进行打码
  • c/c++预处理命令预#line介绍
  • 请问如何在unix批处理中得到批处理参数!read吗?急在线等待!
  • c/c++预处理命令预#include介绍
  • 在linux上怎么编写一个模块来提供某个中断的中断处理程序呢?而且有哪些中断可以自己添加中断处理程序呢?
  • Python 3 Tkinter教程之事件Event绑定处理代码实例
  • 信号处理函数里面用CRT函数可能导致"信号触发-处理"死循环吗?
  • c/c++预处理命令预#,##使用介绍
  • 我想编一个把javac和java连起来用的批处理文件,请批处理文件中的参数怎么表示?
  • c/c++预处理命令预#if, #ifdef, #ifndef, #else, #elif, #endif介绍
  • 为何信号处理没有及时被处理呢?
  • c/c++预处理命令预#define语法和例子
  • 在编写驱动程序的时候,timer处理中,遇到了其他某timer处理例程以外的代码的执行。请指点,各位
  • c/c++预处理命令之预定义变量
  • 我准备做个批处理文件来删除某文件夹下后缀为Txt的文件,可系统一次执行不完,还要手动敲一个回车,怎么处理?
  • Python异常处理基础知识
  • 批量处理JDBC语句提高处理速度


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3