c# try catch语句捕获异常 2017年国家公务员考试行测备考:C#异常处理异常

admin 发布于 2024-04-24 阅读(73)

C# 异常处理

异常是在程序执行期间出现的问题。C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。

异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理时建立在四个关键词之上的:try、catch、 和 throw。

语法

假设一个块将出现异常,一个方法使用 try 和 catch 关键字捕获异常。try/catch 块内的代码为受保护的代码,使用 try/catch 语法如下所示:

try

// 引起异常的语句

catch( e1 )

// 错误处理代码

catch( e2 )

// 错误处理代码

catch( eN )

// 错误处理代码

// 要执行的语句

您可以列出多个 catch 语句捕获不同类型的异常,以防 try 块在不同的情况下生成多个异常。

C# 中的异常类

C# 异常是使用类来表示的。C# 中的异常类主要是直接或间接地派生于 . 类。. 和 . 类是派生于 . 类的异常类。

. 类支持由应用程序生成的异常。所以程序员定义的异常都应派生自该类。

. 类是所有预定义的系统异常的基类。

下表列出了一些派生自 . 类的预定义的异常类:

异常类描述

.IO.

处理 I/O 错误。

.tion

处理当方法指向超出范围的数组索引时生成的错误。

.

处理当数组类型不匹配时生成的错误。

.on

处理当依从一个空对象时生成的错误。

.n

处理当除以零时生成的错误。

.

处理在类型转换期间生成的错误。

.

处理空闲内存不足生成的错误。

.on

处理栈溢出生成的错误。

异常处理

C# 以 try 和 catch 块的形式提供了一种结构化的异常处理方案。使用这些块,把核心程序语句与错误处理语句分离开。

这些错误处理块是使用 try、catch 和 关键字实现的。下面是一个当除以零时抛出异常的实例:

实例

using ;

tion

class

int ;

()

= 0;

void (int num1, int num2)

try

= num1 / num2;

catch (n e)

.(" : {0}", e);

.(": {0}", );

void Main([] args)

d = new ();

d.(25, 0);

.();

当上面的代码被编译和执行时,它会产生下列结果:

Exception caught: System.DivideByZeroException: Attempted to divide by zero. 
at ...
Result: 0

创建用户自定义异常

您也可以定义自己的异常。用户自定义的异常类是派生自 类。下面的实例演示了这点:

实例

using ;

class

void Main([] args)

temp = new ();

try

temp.();

catch( e)

.(": {0}", e.);

.();

class :

( ): base()

class

int = 0;

void ()

if( == 0)

throw (new ("Zero found"));

else

.(": {0}", );

当上面的代码被编译和执行时,它会产生下列结果:

TempIsZeroException: Zero Temperature found

抛出对象

如果异常是直接或间接派生自 . 类,您可以抛出一个对象。您可以在 catch 块中使用 throw 语句来抛出当前的对象,如下所示:

Catch(Exception e)
{
   ...
   Throw e
}

标签:  异常 语句 生成 错误 处理 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。