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

C#控制台程序输入字符串替代整数崩溃,求异常处理方案

解决C#控制台程序输入非整数崩溃的问题

这问题我太熟悉了!你当前的代码里,Convert.ToInt32(Console.ReadLine())在遇到非整数输入时会直接抛出FormatException,这就是程序崩溃的根源。咱们换用更安全的int.TryParse()方法就能完美解决——它不会抛出异常,而是通过返回值告知转换是否成功,同时把合法的整数值通过输出参数返回。

修改后的基础版本代码

static void Main(string[] args) 
{
    Console.Write("Age: ");
    string input = Console.ReadLine();
    int age;
    
    // 尝试转换输入字符串为整数
    if (int.TryParse(input, out age))
    {
        Console.WriteLine($"你输入的年龄是: {age}");
    }
    else
    {
        Console.WriteLine("输入无效,请输入一个合法的整数!");
    }
    
    Console.ReadKey();
}

进阶:让用户重复输入直到合法

如果想让用户必须输入正确的整数才能继续,可以加个循环:

static void Main(string[] args) 
{
    int age;
    do
    {
        Console.Write("请输入年龄(必须是整数): ");
    } while (!int.TryParse(Console.ReadLine(), out age));
    
    Console.WriteLine($"确认你的年龄是: {age}");
    Console.ReadKey();
}

核心知识点

  • int.TryParse(string input, out int result):第一个参数是用户输入的字符串,第二个out参数用来接收转换成功后的整数值。
  • 转换成功时返回true,进入正常处理分支;转换失败(比如输入字母、特殊符号、超出整数范围的数)时返回false,触发错误提示。

这样改造后,程序就再也不会因为非法输入崩溃,用户体验也更友好啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:50:56