C# 异常捕获

简介: 在编写程序时,编译器会帮我们检查程序是否有错误,当我们改正之后,程序就可以编译了,通常也能够正常运行。可以帮助我们提高项目的健壮性,使得程序在发生错误时,仍能解决问题并继续运行,这样也就提高了用户体验。这段代码在编译的时候不会报错,而且当我们正常输入整数时,程序也能正常运行。作为一个老道的程序员,应该学会提前预判可能产生的错误,并提前写好解决办法。,造成的影响有大有小,但是几乎都是恶性的。,而把上述那种运行时可能出现的错误叫做。但当我们输入的不是整数时,就出现了。为捕获到的异常,我们可以通过。
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:C# 异常捕获

@TOC


1.编译错误与运行错误

在编写程序时,编译器会帮我们检查程序是否有错误,当我们改正之后,程序就可以编译了,通常也能够正常运行。

让我们来看看下面这段代码:

using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int n = int.Parse(s);
            Console.WriteLine(n);
        }
    }
}
这段代码在编译的时候不会报错,而且当我们正常输入整数时,程序也能正常运行。

但当我们输入的不是整数时,就出现了异常
System.FormatException: Input string was not in a correct format.

我们把编译器能够发现并指出的错误叫做编译错误或者叫语法错误,而把上述那种运行时可能出现的错误叫做运行错误或者叫逻辑错误


2.进行异常捕获

在程序运行时出现错误是很可怕的事,它们被称为 bug,造成的影响有大有小,但是几乎都是恶性的。

作为一个老道的程序员,应该学会提前预判可能产生的错误,并提前写好解决办法。

而我们要说的异常捕获,就是为了在异常发生时执行解决办法。

异常捕获语句的语法格式如下:

try
{
    <可能出现异常的代码>
}
catch
{
    <出现异常后执行的代码>
}
finally
{
    <不管有没有异常都要执行的代码(可选)>
}
catch还可以写成 catch(Exception e),其中 e为捕获到的异常,我们可以通过 e了解到异常的具体信息。

使用异常捕获语句来改写之前的代码:

using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            try
            {
                int n = int.Parse(s);
                Console.WriteLine(n);
            }
            catch
            {
                Console.WriteLine("输入的不是一个整数");
            }
        }
    }
}
这么写,在原本程序会崩溃的情况下,现在程序能够正常的运行结束,并输出: "输入的不是一个整数"

使用etoString方法,来打印异常信息:

using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            try
            {
                int n = int.Parse(s);
                Console.WriteLine(n);
            }
            catch(Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            finally
            {
                Console.WriteLine("程序执行完毕");
            }
        }
    }
}

当错误输入时的输出:

System.FormatException: Input string was not in a correct format.
   at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type)
   at System.Int32.Parse(String s)
   at ConsoleApplication.Program.Main(String[] args) in C:\Users\Marquis\Desktop\ConsoleApplication\Program.cs:line 12
程序执行完毕
使用熟练 异常捕获可以帮助我们提高项目的健壮性,使得程序在发生错误时,仍能解决问题并继续运行,这样也就提高了用户体验。
目录
相关文章
|
2月前
|
SQL Java 程序员
异常处理
【10月更文挑战第10天】
15 2
|
3月前
|
Python
ython之对异常处理
ython之对异常处理
|
5月前
|
安全 Java API
为什么捕获异常后不要使用e.printStackTrace()打印日志
为什么捕获异常后不要使用e.printStackTrace()打印日志
|
5月前
|
C++
C++ 异常机制问题之捕获异常的问题如何解决
C++ 异常机制问题之捕获异常的问题如何解决
|
7月前
|
存储 C++
63异常处理
63异常处理
35 0
|
7月前
|
存储 Java 编译器
Java异常到底是个啥——一次异常引发的思考
这篇文章主要通过三个部分阐释Java异常 - Java中异常的分类,异常的处理机制 - 异常的处理规范和实战,如何利用Springboot框架处理异常 - 从JVM的角度分析异常机制,包括`try-catch`, `try-finally`, `try-with-resource`的字节码分析
60 0
Java异常到底是个啥——一次异常引发的思考
|
Java
异常的处理和自定义异常
在Java中,异常(Exception)是指程序在运行过程中遇到的错误或异常情况。Java提供了异常处理机制,可以捕获和处理异常,使程序在遇到异常时能够继续执行或进行相应的处理。 异常处理的基本结构是try-catch语句块。在try块中编写可能抛出异常的代码,如果在try块中抛出了异常,那么程序会跳转到catch块中执行相应的异常处理代码。 以下是一个简单的异常处理的示例: ```java try { // 可能抛出异常的代码 int result = 10 / 0; } catch (ArithmeticException e) { // 异常处理代码
74 0
|
SQL 数据安全/隐私保护
异常处理与自定义异常
异常处理与自定义异常
65 0
|
Java 编译器
异常和异常处理
Java将程序执行过程中发生的不正常情况成为异常**。Java使用统一的异常机制来提供一致的错误报告模型,从而使程序更加健壮。
109 0
异常和异常处理