使用try/catch根据输入显示错误

本文关键字:输入 显示 错误 try catch 使用 | 更新日期: 2023-09-27 18:28:58

我有一个相当基本的赋值,它涉及使用try/catch根据输入的数字显示多个名称(使用数组)。如果输入的数字太大,它可能仍然显示名称,但也必须给出越界错误。如果使用一个单词或类似的东西,它需要给出一个格式错误。

到目前为止,我的代码运行得相当好,因为它可以显示越界错误,但当我输入一个单词时,我不会得到格式错误。

我还想知道,如果数字低于5(在只接受5的情况下),是否有可能导致错误发生。

这是我的代码:

class Program
{
    static void Main(string[] args)
    {
        string[] names = new string[5] { "Merry", "John", "Tim", "Matt", "Jeff" };
            string read = Console.ReadLine();
            int appel;
        try
        {   
            int.TryParse(read, out appel);
            for (int a = 0; a < appel; a++)
            {
                Console.WriteLine(names[a]);
            }

        }

        catch(FormatException e)
        {
            Console.WriteLine("This is a format error: {0}", e.Message);
        }
        catch (OverflowException e)
        {
            Console.WriteLine("{0}, is outside the range of 5. Error message: {1}", e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("out of range error. error message: {0}", e.Message);
        }
        Console.ReadLine();
    }
}

使用try/catch根据输入显示错误

int.TryParse(read, out appel);

此代码不会引发任何异常,这将返回True(如果解析成功,则返回false)。如果您打算抛出异常,请使用:int.Parse

        bool b = int.TryParse(read, out appel);
        if(!b)
           throw new FormatException("{0} is not a valid argument", read);

        int.Parse(read, out appel);

只要输入了错误的值,就会抛出formatexception。