Calls to stoi and stod families of functions may throw exceptions so they need to be surrounded by try/catch.
Details
Diff Detail
Event Timeline
I think will be good idea to make check more generic and allow user-defined list of unsafe functions.
clang-tools-extra/docs/ReleaseNotes.rst | ||
---|---|---|
135 | Please keep entries in alphabetical order in section. | |
138 | Please follow 80 characters limit. | |
clang-tools-extra/docs/clang-tidy/checks/bugprone/unhandled-exception-at-sto.rst | ||
6 | Ditto. | |
15 | Ditto. |
This whole check seems weird to me. I mean, almost every use of a standard container could throw std::bad_alloc but we don't insist on a local catch for bad_alloc at every possible throwing call site.
Why would we assume that every call site of stoi or stod must have an exception handler immediately around it? It's perfectly acceptable for an application to handle this at an outer scope that can't be detected by clang-tidy.
I understand that user-defined is implemented through the config, but some types of information of user customization cannot be well described here. Maybe use function name and argument counts only to match unsafe functions?
Makes sense, I implemented this check here because some projects in ByteDance used stoi with missing exception handlers caused an online crash, I think this is a relatively common problem. Perhaps only report diagnostics for stoi calls in nothrow functions?
I don't have anything more to add; I mean, you answered my question with another question. I still don't see that this check is making things better. Have you run it on large code bases to see what kind of nuisance it creates?
Please keep entries in alphabetical order in section.