这个语法是咋回事:int main()try{}catch(){}
这个语法是怎么回事:int main()try{}catch(){}
http://www.stroustrup.com/Programming/std_lib_facilities.h
《C++程序设计原理与实践》上的,第一次见,这个要怎么理解?
这是一种特殊的语法么?在标准文档的哪个地方?我刚才大概看了一下标准文档中的异常部分,没看到。将try理解成一条语句好像不行,这个是不能通过编译的:
------解决方案--------------------
这语法的目的是为了构造函数可以这么写:
能catch到初始化列表的时候的exception。
------解决方案--------------------
可惜。这是标准15.3里描述的function-try-block。你没见过只是你没见过。规范是100%符合的。
http://www.stroustrup.com/Programming/std_lib_facilities.h
#include "../../_h_file_/std_lib_facilities.h"
int main()
try{
error( "asdf" );
return 0;
}
catch(runtime_error& e){
cerr << "runtime error: " << e.what() <<endl;
keep_window_open();
return 1;
}
《C++程序设计原理与实践》上的,第一次见,这个要怎么理解?
这是一种特殊的语法么?在标准文档的哪个地方?我刚才大概看了一下标准文档中的异常部分,没看到。将try理解成一条语句好像不行,这个是不能通过编译的:
void f()cout << "test";
------解决方案--------------------
这语法的目的是为了构造函数可以这么写:
class A
{
A() try: x(5) {} catch(std::bad_alloc& e) {}
vector<int> x;
};
能catch到初始化列表的时候的exception。
------解决方案--------------------
可惜。这是标准15.3里描述的function-try-block。你没见过只是你没见过。规范是100%符合的。