C#异常处理-采⽤try、catch语句结构来捕获和处理异常
使⽤atch语法结构如下:
try
{
//程序代码
}
catch(Exception e)
{
//错误代码处理
}
异常处理的语法:try{有可能产⽣错误的代码}catch(异常处理声明(声明此catch区段要捕获哪⼀种类型的
异常错误,可以不⽤声明,这样⼦便会让catch去捕获任意类型的异常错误)){异常处理程序代码(当catch捕获到异常错误后,所采取对应的程序代码)}注意:利⽤catch来捕获try-catch中产⽣的异常错误,可以建⽴多个catch区段以捕获不同类型的异常错误。
⼀个除数和零的简单例⼦:
using System;
public class DivisorIsZero
{
private static void Main()
{
int dividend = 10;
int divisor1 = 0;
int divisor2 = 5;
int DivideValue;
int DivideValue2;
try
{
Console.WriteLine("10/5=",10/5);
DivideValue = dividend / divisor1; //(1)
DivideValue2=dividend/divisor2; //(2)
Console.WriteLine("我这⾥不会发⽣异常,我可以正常显⽰,我的值为{0}", DivideValue2);
//(3)这⼀⾏将不会被执⾏。
}
catch(Exception e)
{
Console.WriteLine("传递过来的异常值为:{0}", e);
}
finally
{
Console.WriteLine("⽆论是否发⽣异常,我都会显⽰。");
}
}
}
注:(1)⾏被执⾏则会抛出⼀个异常,如果没有catch语句,程序会异常终⽌,使⽤不带参数的catch⼦句,则可以捕获任意类型的异常。
如果将(1)⾏和上⾯的相关变量声明注释掉,启⽤(2)⾏,这意味该程序运⾏时不会出现异常,从输出可知,finally代码块仍将被执⾏。using System;
public class DivisorIsZero
{
private static void Main()
{
int dividend = 10;
//int divisor1 = 0;
int divisor2 = 5;
//int DivideValue;
int DivideValue2;
try
{
//DivideValue = dividend / divisor1; //(1)
DivideValue2=dividend/divisor2; //(2)
Console.WriteLine("我这⾥不会发⽣异常,我可以正常显⽰,我的值为{0}", DivideValue2);
//(3)这⼀⾏将被会正常执⾏。
}
catch(Exception e)
{
Console.WriteLine("传递过来的异常值为:{0}", e);
}
finally
{
Console.WriteLine("⽆论是否发⽣异常,我都会显⽰。");
}
}
}
我们再更改⼀下上⾯的例⼦:
如果去掉上⾯的atch语句,直接编写程序,结果会怎样呢?
using System;
public class DivisorIsZero
{
private static void Main()
{
int dividend = 10;
int divisor1 = 0;
int DivideValue;
DivideValue = dividend / divisor1;
}
}
执⾏后发现,提⽰未处理异常,试图除以零的错误信息。
对⽐前后的结果可以发现,前⾯的代码由于进⾏了异常处理,程序不会中断执⾏,⽽是将异常作为程序的⼀部分来执⾏。后⾯的代码没有进⾏异常处理,导致代码执⾏期间遇到异常时,终⽌程序执⾏,提⽰错误信息。
>try catch的使用方法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论