You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何处理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()尝试转换输入,非数字输入会自动抛出FormatException
  • catch块:精准捕获该异常,输出提示后,循环因isInputValid仍为false继续执行,直到用户输入有效数字
  • 如果需要支持浮点数计算,只需将int替换为double,使用double.Parse()即可,异常捕获逻辑保持不变

内容的提问来源于stack exchange,提问作者squidworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:10:44