throw()是干什么的???

xx64 2003-03-07 11:47:43
类成员函数后的throw()是干什么的??
ex. int getx() throw(){ return x;}
...全文
63 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandrowjw 2003-03-09
  • 打赏
  • 举报
回复
可怜的老VC。
fireseed 2003-03-09
  • 打赏
  • 举报
回复
在VC中需要指定编译器选项才能生效

Function /EHsc /EHs /EHa /EHac
C function throw() throw(...) throw(...) throw(...)
C++ function with no exception specification throw(...) throw(...) throw(...) throw(...)
C++ function with throw() exception specification throw() throw() throw(...) throw(...)
C++ function with throw(...) exception specification throw(...) throw(...) throw(...) throw(...)
C++ function with throw(type) exception specification throw(...) throw(...) throw(...) throw(...)
jonnyyu 2003-03-09
  • 打赏
  • 举报
回复
vc7.0,可以认exception-specification,但是编译器会忽略它。
bcc32 v5.6,(就是C++Builder 6里面那个)直接报告语法错误。
不知道gcc怎么样,我没试过。
ThinkX 2003-03-08
  • 打赏
  • 举报
回复
这就是异常指定(exception-specification),这个方法可以通知编译器,这个函数中有可能抛出什么样的异常,throw()说明这个函数不抛出异常。
如果你用过java,就会知道了。
chinajiji 2003-03-08
  • 打赏
  • 举报
回复
还是就是在函数体里不让用
try{ }
catch();
在getx()中可以这样用.

getx()中规定不准抛炸弹,如果真地抛了,就调用unexpected_handler,默认行为是exit();
chinajiji 2003-03-08
  • 打赏
  • 举报
回复
椐我所知,除了VC6.0及其以下的版本不支持exception-specification,大多数都支持.
xx64 2003-03-08
  • 打赏
  • 举报
回复
那我写的这个函数也不会出现异常啊,在说如果出现了这么办啊,还是就是在函数体里不让用
try{ }
catch();
jonnyyu 2003-03-07
  • 打赏
  • 举报
回复
除了vc7.1还有什么编译器支持exception-specification?
chinajiji 2003-03-07
  • 打赏
  • 举报
回复
throw():
表示拒绝在函数getx() 中乱扔炸弹(异常).

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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