自学C#之路8——异常

异常(Exception)就是程序执行期间发生的问题。无论编程技术有多好,程序都难免 出现异常情况,而且错误发生的原因并不总在程序员,比如用户输入了非法数据,要读取 的文件不存在等等。如果不处理这些异常,程序可能会崩溃,但如果在程序中过多的处理 这些异常,会使程序结构不清晰。为此,C#为我们提供了一套完美的方案,让我们在程序 主线之外处理异常,不但使程序更加健壮、更加容错,而且保持了程序结构的清晰。

 

  • try-catch-finally结构
 
try { 
    Console.Write("请输入分母:"); 
    //下面的语句可能产生 FormatException 异常  
    int denominator = Convert.ToInt32(Console.ReadLine()); 
    //下面的语句可能产生 DivideByZeroException 异常  
    double result = 100 / denominator; 
    Console.WriteLine("结果:100 / {0} = {1}",denominator,result); 
} 
catch (DivideByZeroException) 
{ 
    Console.WriteLine("分母不能为零!输入的字符串不能转换为数字。"); 
} 
catch (FormatException) 
{ 
    Console.WriteLine("格式错误!"); 
} 
finally { 
Console.WriteLine("这是 finally 块。"); 
//其它代码  //......; ......;  
} 

try-catch-finally结构

异常可以主动进行判断,在得到异常时主动抛出异常,throw语句用于主动抛出异常

在 C#中使用 thow 语句抛出异常,其一般格式为:

 

可能发生异常的代码放在 try 块中,异常处理代码放在 catch 块中,不管是否发生异常, 程序都要执行 finally 块中的代码.

 

.NET 提供了丰富的异常类型,所有的异常类型都派生于 Exception 类。

常用异常类

Exception 类和其他一般类一样,有几个公有属性,通过这些属性可以非常方便的了解 异常信息。其中比较重要的两个属性是 Message 和 StackTrace属性 Message 用于描述异 常的原因,属性 StackTrace 用于描述异常的堆栈信息,即发生异常位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值