深圳建设网站首页,响应式网站应该怎么做,运城盐湖区姚孟信通网站开发中心,中国品牌网官方网站C# 语言的异常处理功能有助于处理在程序运行期间发生的任何意外或异常情况。 异常处理功能使用 try、catch 和 finally 关键字来尝试执行可能失败的操作、在你确定合理的情况下处理故障#xff0c;以及在事后清除资源。 公共语言运行时 (CLR)、.NET/第三方库或应用程序代码都可…C# 语言的异常处理功能有助于处理在程序运行期间发生的任何意外或异常情况。 异常处理功能使用 try、catch 和 finally 关键字来尝试执行可能失败的操作、在你确定合理的情况下处理故障以及在事后清除资源。 公共语言运行时 (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.);}}
}
异常概述
异常具有以下属性
异常是最终全都派生自 System.Exception 的类型在可能抛出异常的语句周围使用 try 代码块在 try 代码块中出现异常后控制流会跳转到调用堆栈中任意位置上的首个相关异常处理程序。 在 C# 中catch 关键字用于定义异常处理程序如果给定的异常没有对应的异常处理程序那么程序会停止执行并显示错误消息除非可以处理异常并让应用程序一直处于已知状态否则不捕获异常。 如果捕获 System.Exception使用 catch 代码块末尾的 throw 关键字重新抛出异常如果 catch 代码块定义异常变量可以用它来详细了解所发生的异常类型使用 throw 关键字程序可以显式生成异常异常对象包含错误详细信息如调用堆栈的状态和错误的文本说明即使引发异常finally 代码块中的代码仍会执行。 使用 finally 代码块可释放资源。例如关闭在 try 代码块中打开的任何流或文件.NET 中的托管异常在 Win32 结构化异常处理机制的基础之上实现