C#入门之错误处理

在很多情况下,有些错误是我们可以预知的,就比如前面计算两个数相加的代码,在有些情况下,我们可以预知到,有些用户可能会输入错误类型的数组,比方说,输入字母;

示例代码:

using System;

namespace ConsoleApp13
{
    class Program
    {
        static int Sum(int x, int y)
        {
            return x + y; 
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Please enter first number:");
            int firstNum = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Please enter second number:");
            int secondNum = Convert.ToInt32(Console.ReadLine());
            int sum = Sum(firstNum, secondNum);   
            Console.WriteLine($"The sum is {sum}.");
        }
    }
}

在弹出的命令行窗口中,我们输入一个字母,按回车后,出现了错误,代码终止运行,我们可以在下面的 Output 窗口中,看到错误的相关信息。但我们应该怎么在代码中添加一些代码,在用户输出错误时,继续运行代码,并在终端窗口(命令行窗口)输出 Output 中的错误信息:

using System;

namespace ConsoleApp13
{
    class Program
    {
        static int firstNum, secondNum;
        static int Sum(int x, int y)   // 定义一个函数,需要传递两个参数,参数类型为 int
        {
            return x + y;    // 该函数将返回 x 与 y 的和
        }

        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Please enter first number:");
                Program.firstNum = Convert.ToInt32(Console.ReadLine());
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            try
            {
                Console.WriteLine("Please enter second number:");
                Program.secondNum = Convert.ToInt32(Console.ReadLine());
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            int sum = Sum(firstNum, secondNum); 
            Console.WriteLine($"The sum is {sum}.");
        }
    }
}

此时再次运行代码:
https://ithelp.ithome.com.tw/upload/images/20210910/20099494XBlwrSuaBf.png

我们还可以通过 Environment.Exit() 设置程序在遇到错误(执行 catch)时,输出错误信息,并退出程序:

using System;

namespace ConsoleApp13
{
    class Program
    {
        static int firstNum, secondNum;
        static int Sum(int x, int y)   // 定义一个函数,需要传递两个参数,参数类型为 int
        {
            return x + y;    // 该函数将返回 x 与 y 的和
        }

        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Please enter first number:");
                Program.firstNum = Convert.ToInt32(Console.ReadLine());
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
                Environment.Exit(2);
            }
            try
            {
                Console.WriteLine("Please enter second number:");
                Program.secondNum = Convert.ToInt32(Console.ReadLine());
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
                Environment.Exit(2);
            }
            int sum = Sum(firstNum, secondNum); 
            Console.WriteLine($"The sum is {sum}.");
        }
    }
}

执行程序:
https://ithelp.ithome.com.tw/upload/images/20210910/20099494JBllGIz4p8.png


<<:  [Day 11] Sass/SCSS 基本介绍

>>:  C# rename多个档案名称(再见小叮当)

[Day 23] Leetcode 494. Target Sum (C++)

前言 今天这题也是top 100 liked的题目─494. Target Sum。虽然是mediu...

网络资讯撷取神器 – 爬虫程序 (PYTHON SELENIUM)

我们在举办【Python 大数据培训课程】时,发现很多学员对 Selenium 有以下问题,在此解释...

学习Python纪录Day20 - 新增项目

新增表格 add_table() rows:列数 cols:栏数 doc = docx.Docume...

CodeWars : 新手村练等纪录03- Stop gninnipS My sdroW!

Stop gninnipS My sdroW! 等级:6kyu 原始题目 Write a funct...

Day27 简易小键盘小实作2

接续昨天 我们在按钮的action里加入这段程序码, 变数tag-1的部分就是按下1时呈现的数字是刚...