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

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

泛泛之交 发布于 2016-10-24 字数 141 浏览 1154 回复 2

一般的写法

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

发布评论

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

评论(2

夜无邪 2017-08-13 2 楼

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

归属感 2017-04-27 1 楼

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

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