llvm/llvm-project
View on GitHub[clang-tidy] Add `readability-use-rethrow` check
Open
#189,672 opened on Mar 31, 2026
check-requestclang-tidygood first issue
Repository metrics
- Stars
- (26,378 stars)
- PR merge metrics
- (Avg merge 1d 2h) (1,000 merged PRs in 30d)
Description
It would be useful to have a clang-tidy check that detects cases where code is clearly trying to rethrow the currently handled exception, but spells it as throw e; instead of throw;.
For example, code like this is easy to write:
try {
f();
} catch (const std::exception &e) {
log(e.what());
throw e;
}
but if the intent is to rethrow the active exception, the clearer spelling is:
try {
f();
} catch (const std::exception &e) {
log(e.what());
throw;
}
The latter expresses the intent directly and avoids the impression that the code is deliberately throwing the caught object as a new exception expression.