C++-C++中的catch中如何重新抛出异常?

发布于 2016-10-24 21:19:22 字数 130 浏览 1242 评论 2

一般的写法

try
{
}
catch(exeption& e)
{
//进行某些处理
throw e;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜无邪 2017-08-13 14:56:51

正常情况下是可以重新抛出异常的,不过在实现的过程中要特别小心。
你可以参考再探C++中异常的rethrow

归属感 2017-04-27 03:13:43

try
{
....
}
catch(...)
{
.....
throw;
}

在catch中处理完成后直接使用throw就可以将catch所捕捉到的exception的原本直接向上层抛出。而如果像你代码中所写那样,“throw e;”中的并非是catch(exception& e)中的异常原本,而是其的一份副本。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文