当前位置: 首页 > 知识库问答 >
问题:

当遇到不是来自STL的未捕获异常时,是否有任何方法可以打印其信息?

常翰
2023-03-14

当编译器遇到来自STL的异常时,如std::out_of_range:

int main(int argc, char *argv[]) {
    throw std::out_of_range("There is an exception!");
}

控制台将显示以下消息:

class Exception {
    protected:
        const char *msg;
    public:
        Exception(const char *msg) noexcept : msg(msg) {}
        Exception(const string &msg) noexcept : msg(msg.c_str()) {}
        const char *what() const noexcept {
            return this->msg;
        }
};
int main(int argc, char *argv[]) {
    throw Exception("There is an exception!");
}

控制台消息:

libc++abi.dylib:以exception类型的未捕获异常终止

有什么方法可以让控制台显示:

编译器:Apple LLVM版本9.1.0(clang-902.0.39.2)

共有1个答案

范福
2023-03-14

如果从std::exception公开派生异常类,则编译器提供的异常处理程序将能够打印异常的更多信息。

 类似资料:
  • 这个问题不是关于Rollbar tho:)

  • 问题内容: 我一直在阅读JLS,并且遇到了11.1.3节。我引用的异步异常是: 大多数异常是由于它们所发生的线程的操作而同步发生的,并且在程序中被指定为可能导致此类异常的某个点处发生。相反,异步异常是在程序执行的任何时候都可能发生的异常。 和 异步异常仅由于以下原因而发生: […] * Java虚拟机中的内部错误或资源限制,阻止其实现Java编程语言的语义。在这种情况下,引发的异步异常是Virtu

  • 本文向大家介绍python traceback捕获并打印异常的方法,包括了python traceback捕获并打印异常的方法的使用技巧和注意事项,需要的朋友参考一下 异常处理是日常操作了,但是有时候不能只能打印我们处理的结果,还需要将我们的异常打印出来,这样更直观的显示错误 下面来介绍traceback模块来进行处理 输出结果是integer division or modulo by zero

  • 我在spring boot中实现了一个模板解析器,它使用thymeleafs TemplateEngine。其思想是用户将模板名称、区域设置和模板中使用的任何变量发送给控制器。变量存储在名为的对象中,该对象由一个键和一个值组成。然后将它们添加到上下文中,键作为变量名,值作为值。 当变量未设置时,是否有方法抛出/捕获错误? 目前,如果在处理模板时缺少变量,Thymeleaf将简单地使用占位符文本。例

  • 找不到指定的模型:User\u model Filename:/opt/lampp/htdocs/ci/system/core/Loader。php 电话号码:348 回溯: 文件:/opt/lampp/htdocs/ci/index。php行:315函数:需要一次 我试图改变名称,但它不工作......这个代码模型

  • 我遇到了一个问题,一个标记为@ApplicationException(rollback=true)的捕获RuntimeException将回滚我的数据库事务,并为以下操作杀死该事务。 我希望捕捉异常,将导入源实体标记为错误,记录一些内容,并继续处理其余的数据。 但是捕获异常并不能阻止事务回滚。我现在已经读到了这件事,并明白这种行为是正常的。但问题是,那你怎么做?如何将异常配置为在捕获时不回滚,而