c# - 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;
}
}
当我运行程序时,输入无效字符后没有出现“错误消息”消息。
解决方案
default:
return true;
您是在告诉它返回 true 而不会出现错误。你应该把它改成
default:
throw new Exception("Invalid Selection")
推荐阅读
- scala - Spark 按条件对有序数据帧值进行分类
- python-3.x - 如果在python中使用字符串参数不存在,想要在文件夹中创建一个csv
- keyboard - Ubuntu 20.04 偶尔会禁用键重复
- c - 将 64 位 ROP gadget 内存地址转换为工作 shellcode
- windows - 使用 Windows 10 代理连接到 AWS RDS Postgres 数据库
- css - 右边框不考虑填充
- regex - 如何在bash中使用过滤器
- jenkins - 如何使用 Kaniko 在 jenkins 管道中定义或配置 configmap
- c# - How to prevent outer scrollviewer from overriding inner scrollviewer?
- sql - 来自同一属性 SQL 的 UNION 和 JOING 3 种类型