如何处理C#计算应用中的System.FormatException异常并实现重试逻辑?
C#处理输入异常并实现重新输入的方案
你可以通过循环+try-catch的组合来实现需求,核心思路是用循环反复请求用户输入,在try块中尝试解析输入内容,捕获FormatException时输出"invalid"并让循环继续执行,直到输入有效为止。
以下是完整的控制台示例代码:
using System; class SimpleCalculator { static void Main() { int inputNumber; bool isInputValid = false; // do-while循环确保至少执行一次输入请求 do { Console.Write("请输入数字:"); string userInput = Console.ReadLine(); try { // 尝试解析输入为整数,非数字输入会抛出FormatException inputNumber = int.Parse(userInput); isInputValid = true; Console.WriteLine($"有效输入:{inputNumber}"); // 在这里添加你的计算逻辑 } catch (FormatException) { // 捕获格式异常,输出指定提示 Console.WriteLine("invalid"); } } while (!isInputValid); // 输入验证通过后执行后续计算操作 Console.WriteLine("输入已验证,开始计算..."); } }
关键逻辑说明
- 使用
do-while循环:保证程序一开始就会请求用户输入,无需额外初始判断 try块:执行int.Parse()尝试转换输入,非数字输入会自动抛出FormatExceptioncatch块:精准捕获该异常,输出提示后,循环因isInputValid仍为false继续执行,直到用户输入有效数字- 如果需要支持浮点数计算,只需将
int替换为double,使用double.Parse()即可,异常捕获逻辑保持不变
内容的提问来源于stack exchange,提问作者squidworth
相关产品推荐
相关产品推荐

