gpt4 book ai didi

c++ - 如何记录 C++ 异常

转载 作者:行者123 更新时间:2023-11-30 04:39:39 32 4
gpt4 key购买 nike

您知道如何记录异常吗?现在 catch 语句中的消息被打印出来了,但我不明白为什么 Manage.Gere() 没有调用 sussefully 。

try{
Manager.Gere(&par,&Acc, coman, comando, RunComando, log, &parti, comandosS, RunComandosSuper,true);
}
catch (...)
{
log("ERROR ENTER GERE*****");
}


Perif::Gere(CString *par, CString *Acc, HANDLE coman, HANDLE comando, HANDLE RunComando, Log &log, CString *parti, HANDLE comandosS, HANDLE RunComandosSuper,bool first)
{
log->LogD("Perif :: Gere Enter****** "); //It doesnt get printed

}

最佳答案

行为良好的 API 应该只抛出从 std::exception 派生的类型的对象。如果是这种情况,那么异常将有一个成员函数 const char *what() 包含一条消息,这有望描述错误。所以你可以试试这个,希望它能有所帮助:

try {
Manage.Gere(...);
} catch (const std::exception &e) {
log(e.what());
} catch (...) {
log("Manage.Gere threw unknown exception");
}

如果它抛出的类型不是 std::exception,那么您将需要查看该函数的文档和/或源代码以查看可能出错的地方,以及发生了什么它抛出的类型。如果这些都不可用,我会寻找更好的库。

关于c++ - 如何记录 C++ 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2116828/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com