如果我可以简单地修复错误,为什么要使用try / catch?

牙冠

我不理解使用try和catch处理错误的感觉。(C#)在我的在线课程中,使用了以下示例:

class Program
{
    static void Main(string[] args)
    {

        try
        {
            int[] numbers = new int[3];

            numbers[1] = 0;
            numbers[2] = 1;
            numbers[3] = 2;
            numbers[4] = 3;
        }
        catch(IndexOutOfRangeException ex)
        {
            Console.WriteLine(ex.Message);
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }


        Console.ReadKey();
    }
}

这是一个非常简单的示例,但是我为什么要这样做呢?

我是一个新手...我正在学习编写C#的代码...但是我尝试通过这种方式学习,以至于在最好的情况下根本不会发生错误。

我为什么要尝试捕获这样的异常而不是

run the programm -> "Ah there is a exeption" -> and then fix it?
阿尔科德

首先,C#数组中的一个小点是基于0索引的,这意味着您应该以数字[0]开头。

在您的情况下,数字[4]将失败,但是如果没有try / catch,代码将立即停止。

大多数时候,您想记录应用程序中发生了错误的情况,因此这是try / catch机制的第一个可能的(并且被广泛使用的)目的。

有时,操作可能并不足够重要,无法停止程序。假设您要发送统计信息。如果无法发送统计信息(网络问题?),则您不希望程序完全停止。

需要更细粒度捕获的另一个用例是例如重试机制。如果由于网络问题而导致崩溃,您可以稍后再试,但是如果由于IndexOutOfRangeException而导致崩溃,则该问题会反复发生,因此甚至无需重试(但是您可能会记录它)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章