c++中的异常处理(exception)

有四个问题:1)什么是异常?(Whatisanexception?)2)名字的由来(Wheredoesthenamecomefrom?)3)什么是异常处理?(Whatis... 有四个问题:
1)什么是异常?(What is an exception? )
2)名字的由来(Where does the name come from?)
3)什么是异常处理?(What is exception handling?)
4)为什么异常处理很重要?(Why is it important?)

(最好能简单举例说明,谢谢!)
展开
 我来答
nongyue_007
2010-05-26
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
单词“exception”是短语“exceptional event(异常事件)”的缩写,它定义如下:

定义:异常是程序在执行时发生的事件,它会打断指令的正常流程。

许多种类的错误将触发异常,这些问题从像硬盘(crash)坠毁这样的严重硬件错误,到尝试访问越界数组元素这样的简单程序错误,像这样的错误如果在java函数中厅友核发生,函数将创建一个异常对象并把他抛出到运行时系统(runtime system)。异常对象包含异常的信息,包括异常的类型,异常发生时程序的状态。运行时系统则有责任找到一些代码处理这个错误。在java技术词典中,创建一个异常对象并把它抛给运行时系统叫做:抛出异常(throwing an exception)。

名词解释
异常处理功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。 异常可以由公共语言运行库 (CLR)、第三方库或使用 throw 关键字的应用程序代码生成。
[编辑本段]异常具有以下特点
1.在应用程序遇到异常情况(如被零除情况或内存不足警告)时,就会产生异常。 2.发生异常时告逗,控制流立即跳转到关联的异常处理程序(如果存在)。 3.如果给定异常没有异常处理程序,则程序将停止执行,并显示一条错误信息。 4.可能导致异常的操作通过 try 关键字来执行。 5.异常处理程序是在异常发生时执行的代码块。在 C# 中,catch 关键字用于定义异常处理程序。 6.程序可以使用 throw 关键字显式地引发异常。 7.异常对象包含有关错误的详细信息,其中包括调用堆栈的状态以及有关错误的文本说明。 8.即使引发了异常,finally 块中的代码也会执行,从而使程序可以释放资源。
[编辑本段]异常处理理论上有两种基本模型
一种称为"终止模型"(它是Java与C++所支持的模型).在这种模型中,将假设错误非常关键,将以致于程序无法返回到异常发生的地方继续执行.一旦异常被抛出,就表明错误已无法挽回,也不能回来继续执行. 另一种称为"恢复模型".意思是异常处理程序的工作是修正错误,然后重新尝试调动出问题的方法,并认为的二次能成功. 对于恢复模型,通常希望异常被处理之后能继续执行程序.在这种情况下,抛出异常更像是对方法的调用--可以在Java里用这种方法进行配置,以得到类似恢复的行为.(也就是说,不是抛出异常,而是调用方法修正错误.)或者,把try块放在while循环里,这样就可以不断的进入try块,直到得到满意的结果. 虽然恢复模型开始显得很吸引人,并且人们使用的操作系统也支持恢复模型的异常处理,但程序员们最终还是转向了使用类似"终止模型"的代码.因为:处理程序必须关注异常抛出的地点,这势必要包含依赖于抛出位置的非扮掘通用性代码.这增加了代码编写和维护的困难,对于异常可能会从许多地方抛出的大型程序来说,更是如此. 下面我写的一个简单的例子 VC++6.0下通过 #include <iostream> using namespace std; class Error { public: virtual void show()=0; }; class DenoError:public Error { public: void show() { cout<<"分母不可以为0!"<<endl; } }; void main() { int a,b; cin>>a>>b; try { DenoError e; if(b==0) throw e; int c=a/b; cout<<c<<endl; } catch(DenoError & e) { e.show(); } }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式