概念
异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常
但并不是所有的错误都是异常
而处理这种错误,称为异常处理
异常处理实际是不断去发掘异常、修改异常,使程序更稳定
异常处理主要表现在四个方面:
程序开发前:尽可能的想到会发生的错误,标注怎么处理应对
程序开发中:尽量暴露程序的问题,解决这些可能的异常
系统发布后:尽可能的解决隐藏的或测试人员未测试到的程序问题
发生异常时:异常代码转化成了友好提示显示给用户
异常分类
编译错误
大小写混淆
数据类型与变量类型不符
使用未声明的变量
运行错误
数组下标越界
除数为零
其他运行错误
逻辑错误
超出数据类型的取值范围
语句体忘记加大括号
其他逻辑性错误
异常处理操作
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();
}
}
}
}
结果











