Flask-SQLAlchemy的db.create_all()方法创建与我定义的模型相对应的每个表.我从不实例化或注册模型的实例.它们只是继承自的类定义db.Model.它如何知道我定义了哪些型号?
C++标准规定了以下关于执行std::call_once抛出异常的函数的说明(§30.4.4.2/ 2):
2 /效果:不调用其func的call_once的执行是被动执行.调用其func的call_once的执行是一个活动执行.活动执行应调用INVOKE(DECAY_- COPY(std :: forward(func)),DECAY_COPY(std :: forward(args))...).如果对func的这种调用抛出异常,则执行异常,否则返回.异常执行应将异常传播给call_once的调用者.在任何给定的once_flag的call_once的所有执行中:最多一个应该是返回执行; 如果有返回执行,则应该是最后一次执行; 只有在返回执行时才会执行被动执行.[注意:被动执行允许其他线程可靠地观察先前返回执行产生的结果. - 结束说明]
我正在使用Visual Studio 2012并运行以下代码:
void f(){
throw std::exception( "Catch me!" );
}
int main( int argc, char* argv[] ){
once_flag flag;
try{
call_once( flag, f );
} catch( const std::exception& e ){
cout << e.what() << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的结果是:catch块中的代码运行并打印消息,但是当程序存在时,我得到一个调用abort()并将以下消息打印到cout:
...\mutex.c(38)互联网在忙碌时被毁坏了
这应该发生吗?