gpt4 book ai didi

c++ - 在 C++ 命令行应用程序中,我应该如何在顶层捕获异常?

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:28 27 4
gpt4 key购买 nike

我正在用 C++ 编写命令行应用程序。如果发生未处理的异常,我不希望应用程序严重崩溃,而是尽可能地清理并打印错误消息。

我应该如何在顶层捕获异常以避免程序崩溃?我应该捕获 std::exception... 还是其他东西?

最佳答案

您可以执行的清理质量取决于所抛出的异常。

例如,您自己引发的异常(可能派生自 std::exception;我们称它为 fooexception)可以得到非常优雅的处理。

所以你真的想要一个在这些线上的捕捉点

try {
/*whatever*/

} catch (fooexception& fe){
/*ToDo - handle my exception*/
} catch (std::exception& e){
/*ToDo - handle this generically*/
} catch (...){
/*Hum. That's bad. Let's do my best*/
}

在您有空的时候扩展它。请记住,在某种意义上,多个 catch block 的行为类似于 if else block :始终先处理特定异常。

关于c++ - 在 C++ 命令行应用程序中,我应该如何在顶层捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37072267/

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