首页 > 解决方案 > C# 中的 switch、case、try 和 catch

问题描述

我对 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-statementtry-catch

解决方案


  default:
        return true;

您是在告诉它返回 true 而不会出现错误。你应该把它改成

  default:
        throw new Exception("Invalid Selection")

推荐阅读