Read first
Task 56
Catch a bad number
`std::stoi` throws `std::invalid_argument` on text. Catching it keeps the program alive and lets you skip the bad row.
Task
Task: Catch a bad number. What does this program print?
The editor already contains a starting point. Change it until every check passes — the Next task button unlocks when it does.
What you start with
#include <iostream>
#include <string>
using namespace std;
int main() {
string values[] = {"250", "abc", "375"};
int total = 0;
for (const string& v : values) {
try {
total += stoi(v);
} catch (...) {
cout << "Skipped: " << v << endl;
}
}
cout << "Total: " << total << endl;
return 0;
}
C++
1 automatic check Capstone: structs, maps and errors
Code editor
Ctrl + Enter runs
Run your code to see the output and the checks.
Your result
Submit your code to see results
Write your code in the middle column and press Run code.
Why this works
Checks on this task:
- Check 1
One correct answer:
Track progress
0 of 56 tasks complete
Finish the track
Next task unlocks when every check passes.
Sign in to keep your code and certificates.
Next task (pass every check first)
Hint
Ask yourself: Task: Catch a bad number. What does this program print?