在 C++ 中捕获并重新抛出异常

catching and re-throwing exceptions in c++

我是一名 java 开发人员,试图维护一些非常古老的 c++ 代码(仍然必须使用 vs2010 进行编译)。

我在家里试图理解异常,但无法测试东西,如果这个问题很愚蠢,我很抱歉。

是否可以在低级函数中抛出异常并在顶部捕获它,还是必须在每个级别捕获并重新抛出?

由于我正在编写本机代码、调用托管代码、调用 c#、调用我的 java 休息资源,所以这很复杂。那么那里有任何级别我绝对必须抓住并转换然后重新抛出。

提前致谢。

编辑:Jesper 已经回答了前半部分,我的本机代码可以处理 system::exception 吗?

"Can you throw an exception in a low level function and just catch it at the top" - 是的。

"does it have to be caught and re-thrown at every level?" - 没有。