在很多情况下,有些错误是我们可以预知的,就比如前面计算两个数相加的代码,在有些情况下,我们可以预知到,有些用户可能会输入错误类型的数组,比方说,输入字母;
示例代码:
using System;
namespace ConsoleApp13
{
class Program
{
static int Sum(int x, int y)
{
return x + y;
}
static void Main(string[] args)
{
Console.WriteLine("Please enter first number:");
int firstNum = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter second number:");
int secondNum = Convert.ToInt32(Console.ReadLine());
int sum = Sum(firstNum, secondNum);
Console.WriteLine($"The sum is {sum}.");
}
}
}
在弹出的命令行窗口中,我们输入一个字母,按回车后,出现了错误,代码终止运行,我们可以在下面的 Output 窗口中,看到错误的相关信息。但我们应该怎么在代码中添加一些代码,在用户输出错误时,继续运行代码,并在终端窗口(命令行窗口)输出 Output 中的错误信息:
using System;
namespace ConsoleApp13
{
class Program
{
static int firstNum, secondNum;
static int Sum(int x, int y) // 定义一个函数,需要传递两个参数,参数类型为 int
{
return x + y; // 该函数将返回 x 与 y 的和
}
static void Main(string[] args)
{
try
{
Console.WriteLine("Please enter first number:");
Program.firstNum = Convert.ToInt32(Console.ReadLine());
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
try
{
Console.WriteLine("Please enter second number:");
Program.secondNum = Convert.ToInt32(Console.ReadLine());
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
int sum = Sum(firstNum, secondNum);
Console.WriteLine($"The sum is {sum}.");
}
}
}
此时再次运行代码:
我们还可以通过 Environment.Exit() 设置程序在遇到错误(执行 catch)时,输出错误信息,并退出程序:
using System;
namespace ConsoleApp13
{
class Program
{
static int firstNum, secondNum;
static int Sum(int x, int y) // 定义一个函数,需要传递两个参数,参数类型为 int
{
return x + y; // 该函数将返回 x 与 y 的和
}
static void Main(string[] args)
{
try
{
Console.WriteLine("Please enter first number:");
Program.firstNum = Convert.ToInt32(Console.ReadLine());
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
Environment.Exit(2);
}
try
{
Console.WriteLine("Please enter second number:");
Program.secondNum = Convert.ToInt32(Console.ReadLine());
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
Environment.Exit(2);
}
int sum = Sum(firstNum, secondNum);
Console.WriteLine($"The sum is {sum}.");
}
}
}
执行程序: