C#异常处理知识汇总

2020-06-04 16:00:43丽君

概念

  异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常

  但并不是所有的错误都是异常

  而处理这种错误,称为异常处理

  异常处理实际是不断去发掘异常、修改异常,使程序更稳定

异常处理主要表现在四个方面:

    程序开发前:尽可能的想到会发生的错误,标注怎么处理应对

    程序开发中:尽量暴露程序的问题,解决这些可能的异常

    系统发布后:尽可能的解决隐藏的或测试人员未测试到的程序问题

    发生异常时:异常代码转化成了友好提示显示给用户

异常分类 

编译错误

  大小写混淆

  数据类型与变量类型不符

  使用未声明的变量

运行错误

  数组下标越界

  除数为零

  其他运行错误

逻辑错误

  超出数据类型的取值范围

  语句体忘记加大括号

  其他逻辑性错误

异常处理操作

C#中异常处理时建立在四个关键词之上:try、catch、finally 和 throw。

  try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块

  catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获

  finally:用于执行给定的语句,不管异常是否被抛出都会执行

  throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成

异常语句格式

try

{

// 引起异常的语句

}

catch( ExceptionName e )

{

// 错误处理代码

}

finally

{

// 要执行的语句

}

示例

using System;
namespace DivisorIsZero
{
 public class DivisorIsZero
 {
 private static void Main()
 {
  int div0 = 20;
  int div1 = 0;
  int div2 = 2;
  int DivValue;

  try
  {
  DivValue = div0 / div1;
  System.Console.WriteLine("div0 / div1 = {0}", DivValue);
  }
  catch(DivideByZeroException e )
  {
  System.Console.WriteLine("零不能作为除数!异常值为:n{0}",e);
  }

  // catch(DivideByZeroException e)子句只能捕获特定的异常
  // try内的程序代码可能还会产生其它的异常,这些异常只能由catch(Exception e)来捕获了
  catch(Exception e )
  {
  System.Console.WriteLine("并非''零作为除数引发的异常"!异常值为:n{0}",e);
  }
  finally
  {
  System.Console.WriteLine("无论是否发生异常,我都会显示");
  System.Console.ReadKey();
  }
 }
 }
}

结果

C#中常见的异常类