切换,区分大小写,尝试抓住C#探针

问题描述 投票:-1回答:3

我对C#编程非常陌生。我想捕获错误,例如输入无效(不是1-6中的数字)并打印出一条消息,指出错误。这是我的代码。

private static bool ManageStudents()
    {
        Console.Clear();
        Console.WriteLine("========================");
        Console.WriteLine(" Choose an option:");
        Console.WriteLine("  1. Add a new student");
        Console.WriteLine("  2. View all students");
        Console.WriteLine("  3. Search students");
        Console.WriteLine("  4. Delete students");
        Console.WriteLine("  5. Update students");
        Console.WriteLine("  6. Back to main menu");
        Console.WriteLine("========================");
        Console.Write("\r\nPlease choose: ");

        try
        {
            switch (Console.ReadLine())
            {
                case "1":
                    AddStudents();
                    return true;
                case "2":
                    ViewStudents();
                    return true;
                case "3":
                    SearchStudents();
                    return true;
                case "4":
                    DeleteStudents();
                    return true;
                case "5":
                    UpdateStudents();
                    return true;
                case "6":
                    return false;
                default:
                    return true;
            }
        }

        catch (Exception e)
        {
            Console.WriteLine("error message");
            Console.ReadLine();
            return true;
        }

    }

当我运行程序时,输入无效字符后没有出现“错误消息”消息。

c# switch-statement try-catch
3个回答
0
投票

替换

 default:
       return true;

with

 default:
       throw new Exception();

0
投票
  default:
        return true;

您正在告诉它返回true而不出现错误。您应该将其更改为

  default:
        throw new Exception("Invalid Selection")

-1
投票
default语句中使用

switch就是这样-如果找不到匹配项,则默认为这种情况。如果希望try块失败,则需要在default中引发异常。

© www.soinside.com 2019 - 2024. All rights reserved.