2010-06-25 64 views
4

你能否在C#中解释异常的概念?异常的目的是什么?

+0

异常的概念不是C#独有的。所有的.NET语言都支持异常,Java和本地C++也是如此。 – 2010-06-25 04:49:03

+0

http://en.wikipedia.org/wiki/Exception_handling – 2010-06-25 04:59:52

回答

0

查看Exceptions上的MSDN Docs。

简而言之,只要应用程序出现错误就会发生异常。有许多不同类型的错误,例如数组索引超出界限,磁盘I/O中的错误,Divide By Zero问题等等。但是一般来说,只要发生了某些程序无法自动纠正的情况,就会发生异常。

+0

在编辑过程中包含某种总结 – 2010-06-25 04:45:56

+1

是有帮助的。 – drharris 2010-06-25 04:47:16

1

例外是当方法或函数不能完成它应该做的事情的情况。

如果的OpenFile方法无法打开文件[对于任何理由],文件句柄返回到调用者,这是对的OpenFile方法,因为它无法打开这是它的主要目的文件例外。因此,没有什么比例外的,对于其他人来说,在某些不同的情况下,对您而言可能是一种例外情况。我们可以称它为Execution Failures。例外的主要目的是传达错误条件。

例:OutOfMemoryException可能是正常的小规模的数据录入程序的例外条件,但不是为那些做他们的内存管理自己,喜欢的SqlServer或IIS应用程序。考虑阅读流的情况。如果ReadByte方法到达数据流的末尾,并且没有更多字节要读取,那么当您在流上调用ReadByte时,它应该抛出一个异常,因为没有更多字节要读取。但是当你在流尾部调用ReadChar方法时,它将读取EOF,这对于ReadChar方法来说是绝对可以的,因为EOF是一个有效的字符来读取。对于ReadByte方法,条件被称为method-failure

+0

方法应执行以下两项操作之一:返回表示请求操作结果的值,或者在无法完成请求的操作时抛出异常。 – kyoryu 2010-06-25 05:00:25

+0

基于错误代码的错误报告并不可取。该方法必须达到其目的并仅返回可接受的值。任何阻止该方法执行的条件都是例外情况,应该使用'HResult'来将错误与外部错误数据库或文档相关联。这是因为你只想通知有关错误条件,而不是如何解决错误条件。 – 2010-06-25 05:15:52

+0

请证明投票的正确性。 – 2010-06-25 05:33:38