使用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();
}
}
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。