VSTO开发入门教程
上QQ阅读APP看书,第一时间看更新

2.14 错误处理

异常是在运行期间代码中产生的错误,或者由于代码调用的函数产生的错误。

例如我们用C#制作了一个乘法计算器,用户在窗体上的两个文本框分别输入被乘数和乘数,单击一个按钮,在对话框中给出两个数的乘积。但是有些时候,用户在文本框中输入的不是数字,而是其他字符,那么造成乘法无法算出,如果不加错误处理,将会导致程序意外终止。

C#语言包含结构化异常处理的语法,用于异常处理的三个关键字是:

● try:包含抛出异常的代码。

● catch:包含抛出异常时执行的代码。

● finally:包含始终会执行的代码。

下面的示例,在try块中试图提取数组i中下标为3的元素,实际上该数组的最大下标为2,故此一定会出错。出错后,首先执行catch块内的代码,然后执行finally中的代码。

    1         public void错误处理()
    2         {
    3             try
    4             {
    5                 int[] i = { 1, 3, 5 };
    6                 result = i[3].ToString(); //数组下标越界
    7             }
    8             catch (SystemException ex)
    9             {
    10                result = ex.Message;
    11            }
    12            finally
    13            {
    14                result += "\nfinally";
    15            }
    16        }

以下是VBA中的错误处理方式:

    1  Public Sub错误处理()
    2     On Error GoTo Err1:
    3     Dim i(1 To 3) As String
    4     result = i(4)   '数组下标越界
    5  Exit Sub
    6  Err1:
    7     result = Err.Description
    8  End Sub