我们写**C#**程序的时候,经常会遇到各种各样的问题,比如输入的内容不是数字、文件找不到、数组下标超出了范围等等。程序一旦遇到这些问题,可能直接报错甚至闪退。这个时候就需要用到异常处理。
C# 里最常用的异常处理就是 "try-catch" 。简单来说,"try" 就是**"这段代码可能出问题,你先帮我试试看"** ,而**"catch"** 就是"如果真的出问题了,我来处理"。
如:
cs
try
{
int num = Convert.ToInt32("abc");
}
catch
{
Console.WriteLine("输入的内容不是数字!");
}
上面的代码中,""abc"" 无法转换成整数,所以会发生异常。程序不会直接崩掉,而是进入**"catch"**里面执行。
如果我们想知道具体出了什么问题,还可以使用**"Exception"**:
cs
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
这里的**"ex.Message"**可以获取异常的具体信息。
另外还有一个常见的**"finally"** ,不管有没有发生异常,它里面的代码都会执行。比如关闭文件、释放资源等操作,就很适合放在**"finally"**里面。
总结:try 负责尝试 ,catch 负责处理 ,finally负责收尾。