关于C#中的异常捕捉

2021-05-05 21:29

阅读:712

标签:避免   无效   ide   reference   log   终止进程   内存   null   opera   

1.c#中的异常清单

    

Exception:所有异常对象的基类。
  SystemException:运行时产生的所有错误的基类。
  IndexOutOfRangeException:当一个数组的下标超出范围时运行时引发。
  NullReferenceException:当一个空对象被引用时运行时引发。
  InvalidOperationException:当对方法的调用对对象的当前状态无效时,由某些方法引发。

  ArgumentException:所有参数异常的基类。
  ArgumentNullException:在参数为空(不允许)的情况下,由方法引发。
  ArgumentOutOfRangeException:当参数不在一个给定范围之内时,由方法引发。
  InteropException:目标在或发生在CLR外面环境中的异常的基类。
  ComException:包含COM类的HRESULT信息的异常。
  SEHException:封装Win32结构异常处理信息的异常。
  SqlException:封装了SQL操作异常。

    常见具体的异常对象:

  ArgumentNullException 一个空参数传递给方法,该方法不能接受该参数
  ArgumentOutOfRangeException 参数值超出范围
  ArithmeticException 出现算术上溢或者下溢
  ArrayTypeMismatchException 试图在数组中存储错误类型的对象
  BadImageFormatException 图形的格式错误
  DivideByZeroException 除零异常
  DllNotFoundException 找不到引用的DLL
  FormatException 参数格式错误
  IndexOutOfRangeException 数组索引超出范围
  InvalidCastException 使用无效的类
  InvalidOperationException 方法的调用时间错误
  NotSupportedException 调用的方法在类中没有实现
  NullReferenceException 试图使用一个未分配的引用
  OutOfMemoryException 内存空间不够
  StackOverflowException 堆栈溢出

try catch中尽量使用具体的异常,避免使用system.Exception  

 

 

2. 异常处理需要注意的地方
1)Catch和Finally代码应该非常短,而且成功率极高,避免自己又抛出一个异常。否则CLR会终止进程,避免安全漏洞或者不可预知的后果。这个类似于Windows蓝屏,发生了严重的错误,宁愿使系统不可用。
2)Catch块尽量避免直接捕捉异常的基类Exception,而应该捕捉具体的异常类。
 

 

关于C#中的异常捕捉

标签:避免   无效   ide   reference   log   终止进程   内存   null   opera   

原文地址:http://www.cnblogs.com/mercedes-Benz/p/7674829.html


评论


亲,登录后才可以留言!