C++中怎样处理异常?

try{throw自定义异常类;}catch(type自定义异常对象){//codetobeexecutedincaseofexception}还有try,throw,c... try {
throw 自定义异常类;
}
catch (type 自定义异常对象)
{
// code to be executed in case of exception

}

还有try, throw,catch 都是c++关键字吗,可以自定义成其它的不?
如何编写自已的异常类。谁写个示例,谢谢!!
展开
 我来答
来自美国迷人的阿拉蕾
推荐于2016-07-30 · TA获得超过2896个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:176万
展开全部
是关键字
try
{
//.......
throw ...
}
catch()
{
//......
}
也就是一个程序段要抛出一个异常,然后要写一个相应的catch代码来捕获这个相应的异常。抛出的异常类型要与紧跟在try代码块之后的catch代码的形参相对应。一个try程序块之后可以紧跟多个catch程序块,但必须保证在try程序块中得抛出一个与之后catch代码的形参列表所匹配的异常类型。
比如说你在try代码块内抛出一个int 类型的异常,那么在紧跟其后的catch代码块的形参列表中就应该是一个int类型。最后catch代码块在捕获了这个抛出的异常后就可以对这个异常做处理,同时也可以再抛出一个异常。
下面给一个我为楼主写的例子,楼主可以看一下。这是一个求二次方程两个根的问题,里面就用到了异常的抛出与捕获。
#include<iostream>
#include<math.h>
using namespace std;
double Quadratic(double A,double B,double C,bool choose)
{
if(A)
{
if((B*B-4*A*C)<0)
throw "Error";
else
if(choose)
return ((-1)*B+sqrt(B*B-4*A*C))/(2*A);
else
return ((-1)*B-sqrt(B*B-4*A*C))/(2*A);
}
else
throw C/((-1)*B);
}
int main()
{
try
{
double A,B,C;
cout<<"Enter three number:";
while(!(cin>>A>>B>>C).eof())
{
cout<<"The answer is:"<<Quadratic(A,B,C,1)
<<"And"<<Quadratic(A,B,C,0)<<'\n';
cout<<"Enter the next three number:";
}
}
catch(char *ptr)
{
cout<<ptr<<'\n';
}
catch(double answer)
{
cout<<"The answer is:"<<answer<<'\n';
}
return 0;
}
while(!(cin>>A>>B>>C).eof())是用来判断是否结束输入的。去掉.eof()就只能输入一次A,B,C参数了。另外这个例子也是我临时想出来的,或许不大有代表性,实际应用里的例子我现在也找不到,不好意思了
.eof()是判断数据流是否输入完毕。如果输入完毕则返回1,没有输入完毕就返回0。如果你不想用.eof()的话就把那个while循环去掉就可以了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式