C#:异常

本文介绍了C#中的异常处理机制,包括异常的介绍、何时使用异常、异常的正确使用方式以及编译器生成的异常。异常是通过try、catch、finally关键字处理程序运行时可能出现的错误情况。当遇到错误时,公共语言运行时会寻找匹配的catch块来处理异常,否则程序会终止。异常应在无法完成任务、参数无效或对象状态不适当等情况时引发。同时,避免滥用异常控制流程,且不应故意引发某些基础异常类型。
摘要由CSDN通过智能技术生成

异常介绍


C# 语言的异常处理功能有助于处理在程序运行期间发生的任何意外或异常情况。

异常处理功能使用 trycatchfinally 关键字来尝试执行可能失败的操作、在你确定合理的情况下处理故障,以及在事后清除资源。

公共语言运行时 (CLR)、.NET/第三方库或应用程序代码都可生成异常。 异常是使用 throw 关键字创建而成。

在许多情况下,异常并不是由代码直接调用的方法抛出,而是由调用堆栈中再往下的另一方法抛出。 如果发生这种异常,CLR 会展开堆栈,同时针对特定异常类型查找包含 catch 代码块的方法,并执行它找到的首个此类 catch 代码块。 如果在调用堆栈中找不到相应的 catch 代码块,将会终止进程并向用户显示消息。

在以下示例中,方法用于测试除数是否为零,并捕获相应的错误。 如果没有异常处理功能,此程序将终止,并显示 DivideByZeroException was unhandled 错误。

public class ExceptionTest
{
    static double SafeDivision(double x, double y)
    {
        if (y == 0)
            throw new DivideByZeroException();
        return x / y;
    }

    public static void Main()
    {
        // Input for test purposes. Change the values to see
        // exception handling behavior.
        double a = 98, b = 0;
        double result;

        try
        {
            result = SafeDivision(a, b);
            Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
        }
        catch (DivideByZeroException)
        {
            Console.WriteLine("Attempted divide by zero.");
        }
    }
}

什么时候应该使用异常


异常用于指示在运行程序时发生了错误。 此时将创建一个描述错误的异常对象,然后使用 关键字引发。 然后,运行时搜索最兼容的异常处理程序。

当存在下列一种或多种情况时,程序员应引发异常:

1.方法无法完成其定义的功能。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值