一般情况下,人们总是想像代码能够和自己想的一样正确执行,但由于各种原因,实际运行时还是会出现各种各样的问题;在C#代码中,m.lom599可以异常(exception)捕捉机制进行处理,并对不同的异常情况做出合理的处理。

C#中的异常处理使用了try...catch...finally语句结构,其基本语法如下。

try
{
    <语句块1>
}
catch (Exception ex)
{
    <语句块2>
}
catch
{
    <语句块3>
}
finally
{
    <语句块4>
}

在这个结构中,<语句块1>是软件的业务代码,但可能会出现问题,此时,可以使用一系列的catch语句块进行捕捉,catch关键字后如果使用一对圆括号定义了异常类型,就可以精确的捕捉到此类型的异常,从而进行相应的处理;如果无法确定异常类型,可以使用Exception对象获取异常信息,以便进一步处理;如果不需要获取异常信息,可以直接使用catch语句进行相应的处理,请注意,不指定异常类型的catch语句只能有一个,而且只能出现在所有有异常类型的catch后面;最终,无论<语句块1>是否出现异常,都会执行finally语句块中的内容。整个try的基本执行逻辑如下图所示。

enter image description here

接下来,m.lom599就来看几种try...catch...finally语句结构的变形和具体应用。

下面的代码,m.lom599看一看如何捕捉异常并显示其提示信息。

static void Main(string[] args)
{
        try
        {
            int x = 10;
            int y = 0;
            Console.WriteLine(x / y);
        }
        catch(Exception ex)
        {
            Console.Write("出现异常:");
            Console.WriteLine(ex.Message);
        }
}

代码执行结果如下图所示。

enter image description here

下面的代码演示了finally语句块的使用。

static void Main(string[] args)
{
        try
        {
            int x = 10;
            int y = 0;
            Console.WriteLine(x / y);
            Console.WriteLine("正确执行");
        }
        catch
        {
            Console.WriteLine("出现异常");
        }
        finally
        {
            Console.WriteLine("结束");
        }
}

代码执行结果如下图所示。

enter image description here

大家可以修改y的值来观察执行结果。

项目开发中,可以根据需要统一处理异常并做记录,这样就可以在使用过程中有效跟踪常见错误,并对软件做出相应的修改;比如,在上一课中使用CLog类就可以根据需要进行修改,以适合的方式记录软件执行过程中的错误,并做分析、改进等工作。

CHY软件小屋原创作品!