c#获取运行时错误。为什么?

c#获取运行时错误。为什么?,c#,.net,C#,.net,嘿,我试图解决这个问题,但Kattis说我得到运行时错误,这意味着未捕获的异常。 我的代码中是否有遗漏的内容导致应用程序崩溃 public static void Main(string[] args) { string line = ""; while ((line = Console.ReadLine()) != "0") { var numbers = line.Split(' ').Select(int.Parse).ToList();

嘿,我试图解决这个问题,但Kattis说我得到运行时错误,这意味着未捕获的异常。

我的代码中是否有遗漏的内容导致应用程序崩溃

public static void Main(string[] args)
{
    string line = "";
    while ((line = Console.ReadLine()) != "0")
    {

        var numbers = line.Split(' ').Select(int.Parse).ToList();
        int x = numbers[0];
        int y = numbers[1];
        int N = numbers[2];
        for(int i = 1; i <= N; i++)
        {
            bool found = false;
            bool found2 = false;
            if(i % x == 0)
            {
                if(i % y==0)
                {
                    Console.WriteLine("FizzBuzz");
                    found2 = true;
                }
                else
                {
                    Console.WriteLine("Fizz");
                    found = true;                           
                }
            }
            if(i % y == 0 && !found2)
            {
                Console.WriteLine("Buzz");
                found = true;
            }
            if(!found && !found2)
            {
                Console.WriteLine(i);
            }
        }
       }
}
publicstaticvoidmain(字符串[]args)
{
字符串行=”;
而((line=Console.ReadLine())!=“0”)
{
var numbers=line.Split(“”).Select(int.Parse.ToList();
int x=数字[0];
int y=数字[1];
int N=数字[2];

对于(int i=1;i没有任何东西可以保证
number
的长度至少为3甚至1。 这意味着以下所有行都可能引发索引越界异常:

int y = numbers[1];
int N = numbers[2];

因此,在分配上述行之前,您需要检查
数字。长度

我理解这个问题的方式是,控制台上会给您一行3个数字。因此,您应该只执行一行
读取行
。我建议在执行
循环时删除
,然后执行

var numbers = Console.ReadLine().Split(' ').Select(int.Parse).ToList();

运行代码时会出现哪些异常?哪一行出现错误?我感觉你只是想向我公布一个站点…调试时,会出现什么异常?哪一行引发异常?不要忽略错误,系统会告诉你问题。我不确定
而((line=Console.ReadLine())!=“0”)
是有意义的,因为它说输入将是一个单独的测试用例。试着在
循环时删除
。但是你怎么知道这是这种情况下的特定错误呢?