当前位置:   article > 正文

C# try catch finally:异常处理_c#错误处理机制finally

c#错误处理机制finally

C# try catch finally:异常处理
在 C# 语言中异常与异常处理语句包括三种形式,即 try catch、try finally、try catch finally。
在上述三种异常处理的形式中所用到关键字其含义如下:
try:用于检查发生的异常,并帮助发送任何可能的异常。
catch:以控制权更大的方式处理错误,可以有多个 catch 子句。
finally:无论是否引发了异常,finally 的代码块都将被执行。
下面我们将分别为大家讲解这三种形式的应用。

  1. try catch
    在 try 语句中放置可能出现异常的语句,而在 catch 语句中放置异常时处理异常的语句,通常在 catch 语句中输出异常信息或者发送邮件给开发人员等。
    下面通过实例来演示 try catch 的应用。
    另外,在处理异常时,catch 语句是允许多次使用的,相当于多分支的 if 语句,仅能执行其中一个分支。
    【实例 1】在文本框中输入一个整数,并判断其是否大于 100。
    根据题目要求,如果在文本框中输入的是一个字符串或者浮点数,就会出现类型转换错误,如下图所示
    在这里插入图片描述
    如果使用异常处理的语句来处理数据类型转换,则不会岀现上图中的提示,而是出现 catch 语句中弹出的消息框,实现的代码如下。
    public partial class tryCatchForm : Form
    {
    public tryCatchForm()
    {
    InitializeComponent();
    }
    //“确认”按钮单击事件
    private void button1_Click(object sender, EventArgs e)
    {
    //获取文本框中的值
    string str = textBox1.Text;
    //将字符串装换为整数
    try
    {
    int num = int.Parse(str);
    MessageBox.Show(“您输入的数字是:” + num);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }
    }
    运行该窗体,输入字符串“abc”,并单击“确定”按钮,效果如下图所示
    在这里插入图片描述

从运行效果可以看出,使用异常处理后不会再出现上面所示的异常提示,而是弹出 catch 子句中的消息框。
【实例 2】使用多个 catch 语句对程序做异常处理。
从控制台输入 5 个数存入整数数组中,首先判断输入的值是否为数值,再判断数组元素是否越界。
根据题目要求,创建控制台应用程序完成该实例,具体的代码如下。
class Program
{
static void Main(string[] args)
{
//定义存放5个整数的数组
int[] a = new int[5];
try
{
for(int i = 0; i < a.Length; i++)
{
a[i] = int.Parse(Console.ReadLine());
}
for(int i = 0; i < a.Length; i++)
{
Console.Write(a[i] + " ");
}
}
catch(FormatException f)
{
Console.WriteLine(“输入的数字格式不正确!”);
}
catch(OverflowException o)
{
Console.WriteLine(“输入的值已经超出 int 类型的最大值!”);
}
catch(IndexOutOfRangeException r)
{
Console.WriteLine(“数组越界异常!”);
}
}
}
2) try finally
在 try finally 形式中没有单独对出现异常时处理的代码,finally 语句是无论 try 中的语句是否正确执行都会执行的语句。
通常在 finally 中编写的代码是关闭流、关闭数据库连接等操作,以免造成资源的浪费。
下面通过实例来演示 try finally 形式的应用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/86047
推荐阅读
相关标签
  

闽ICP备14008679号