如果忘记捕获异常,它将返回运行时或由定义的异常处理程序函数处理。 或者我可以在try catch中将代码包装在main中。两者都会以合适的方式处理异常。
但是我想在早期发现这种情况,有没有办法做到这一点。
答案 0 :(得分:2)
C ++(谢天谢地)不需要函数来宣告他们可能抛出的异常。因此,通常,任何函数都可以抛出任何东西。你不知道,你的编译器也不知道。
因此,你必须自己去追踪从哪里被捕获的异常,以及它们被捕获的地方。
答案 1 :(得分:0)
C ++不支持Java风格的限制性异常声明,并且由于多种原因无法实现。您的编译器不能也不会警告您未捕获的异常。 C ++ throw()规范用于不同的目的(或者说,目前根本没有任何目的)。
标准解决方案是确保所有异常都来自stdexcept
类,并在适当的位置捕获std::exception
或std::runtime_error
。这通常意味着一个非常高级的地方,例如激活动作的控制器功能。
答案 2 :(得分:0)
但是我想在早期发现这种情况,有没有办法做到这一点。
如果您想在本地处理错误,则不应使用例外。