Examples of errors detected by the V1022 diagnostic
V1022. Exception was thrown by pointer. Consider throwing it by value instead.
Qt Creator
V1022 [CWE-755] An exception was thrown by pointer. Consider throwing it by value instead. celliterator.cpp 59
CellIterator &CellIterator::operator-=(int n) { .... if (m_pos - n < 0) throw new std::runtime_error("-= n too big!"); } FaCT++
V1022 [CWE-755] An exception was thrown by pointer. Consider throwing it by value instead. ExtendedDataRange.cpp 44
static bool checkDataRelation ( const DataTypeReasoner& Op1, const DataTypeReasoner& Op2, int op ) { switch (op) { .... default: throw new EFaCTPlusPlus("Illegal operation in checkDataRelation()"); } } Haiku Operation System
V1022 An exception was thrown by pointer. Consider throwing it by value instead. gensyscallinfos.cpp 316
int main(int argc, char** argv) { try { return Main().Run(argc, argv); } catch (Exception& exception) { // <= fprintf(stderr, "%s\n", exception.what()); return 1; } } int Run(int argc, char** argv) { .... _ParseSyscalls(argv[1]); .... } void _ParseSyscalls(const char* filename) { ifstream file(filename, ifstream::in); if (!file.is_open()) throw new IOException(string("Failed to open `") + filename + "'."); // <= .... } Similar errors can be found in some other places:
- V1022 An exception was thrown by pointer. Consider throwing it by value instead. gensyscallinfos.cpp 347
- V1022 An exception was thrown by pointer. Consider throwing it by value instead. gensyscallinfos.cpp 413
LibrePCB
V1022 CWE-755 An exception was thrown by pointer. Consider throwing it by value instead. cmdremoveselectedschematicitems.cpp 143
bool CmdRemoveSelectedSchematicItems::performExecute() { .... throw new LogicError(__FILE__, __LINE__); .... }