C++里的异常...

seadaughter 2009-03-31 11:57:35
别人给了我一段代码,我不知道内部实现机制,可能有某个不知道的异常。。该怎么捕获??

try
{
others' code..
}
catch(这里怎么写?)
{}...
...全文
181 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶落寒山 2009-04-02
  • 打赏
  • 举报
回复

// 捕获所有的异常
try
{
......
}
catch(exception &e)
{
.......
}
//只对抛出的异常处理
try
{
...;//x做运算
if(0 == x)
{
throw x; //抛出异常
}
}
catch(x)
{
//对你认为的异常做处理
}
  • 打赏
  • 举报
回复
哎,问题是连人家的throw你都不太清楚
once_and_again 2009-04-02
  • 打赏
  • 举报
回复
throw 抛给上一个模块吧,或者调用它的地方.
c_perl 2009-04-02
  • 打赏
  • 举报
回复
try{
......
}catch(exception &e){
.......
}
c_perl 2009-04-02
  • 打赏
  • 举报
回复
try{
......
}catch(exception &e){
.......
}
cxxer 2009-04-02
  • 打赏
  • 举报
回复

try{
//......
}
catch(exception &e)
{
//.......
}
catch(...)
{
//do something
}

Jarrys 2009-04-02
  • 打赏
  • 举报
回复
exception是一个异常类的基类,能接受大多数的异常

但是当你的catch(expception& e){}没有捕获到抛出的异常时,编译程序会自动的调用默认的异常处理,并在最后结束你的程序,调用 abort() 或exit(1) 我们也可以修改默认异常处理函数 通过set_terminate();来修改 默认异常处理的入口
beyond071 2009-04-02
  • 打赏
  • 举报
回复
学习了...
ztenv 版主 2009-04-02
  • 打赏
  • 举报
回复
一定要搞清楚人家可能抛出来什么东东的,也可能是人家自已定义的一个非exception派生类
bfhtian 2009-04-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lglowkey 的回复:]
例如 :
try{
throw runtime_error("idxf a");
}catch(exception &e) { //exception 是一个异常类 大多数异常的 基类
cout < <e.what() < <endl;
abort(); //中止
}
[/Quote]
但是这样的异常不好处理
old-six-programmer 2009-04-01
  • 打赏
  • 举报
回复
首先你可以查看一下other's code的异常规范
根据异常规范,你可以有针对性的编写异常处理代码

否则就catch all

try
{
other's code
}
catch( ... )
{
// 喂,有异常,是就地处理,还是继续抛掷?
}

Wind_Runner 2009-04-01
  • 打赏
  • 举报
回复
对,异常类可以参考参考MSDN~~~
lglowkey 2009-04-01
  • 打赏
  • 举报
回复
例如 :
try{
throw runtime_error("idxf a");
}catch(exception &e) { //exception 是一个异常类 大多数异常的 基类
cout<<e.what()<<endl;
abort(); //中止
}
hzx716 2009-04-01
  • 打赏
  • 举报
回复
catch()括号里捕捉throw出来的异常类型
如你要输入的是字符型,而有可能输入整形
你就throw出一个int,然后在下面catch各种异常
liliangbao 2009-04-01
  • 打赏
  • 举报
回复
try{ 
...
}catch(exception &e) { //exception 是一个异常类大多数异常的基类
cout <<e.what() <<endl;
abort(); //中止
}

也可以:
try{
...
}catch(...) { //任何类型的异常
abort(); //中止
}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧