小编Ale*_*ana的帖子

Flask-SQLAlchemy create_all如何发现要创建的模型?

Flask-SQLAlchemy的db.create_all()方法创建与我定义的模型相对应的每个表.我从不实例化或注册模型的实例.它们只是继承自的类定义db.Model.它如何知道我定义了哪些型号?

python sqlalchemy flask flask-sqlalchemy

8
推荐指数
1
解决办法
3089
查看次数

从std :: call_once中抛出异常

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)互联网在忙碌时被毁坏了

这应该发生吗?

c++ mutex exception std c++11

6
推荐指数
1
解决办法
1459
查看次数

标签 统计

c++ ×1

c++11 ×1

exception ×1

flask ×1

flask-sqlalchemy ×1

mutex ×1

python ×1

sqlalchemy ×1

std ×1