Error Handling
Try Parse
int.tryParse returns null instead of throwing when text is not a valid integer.
Program
Play the program to parse valid text, then select invalid input and watch the fallback path.
try_parse.dart
Replay: real traced execution (multi-file project)
void main() {
var raw = '42';
var value = int.tryParse(raw);
var label = value == null ? 'invalid' : 'value=$value';
print(label);
}
void main() {
var raw = 'oops';
var value = int.tryParse(raw);
var label = value == null ? 'invalid' : 'value=$value';
print(label);
}
raw ← 42
1void main() {2 var raw = '42';3 var value = int.tryParse(raw);values this step42rawvalue ← 42
2var raw = '42';3var value = int.tryParse(raw);4var label = value == null ? 'invalid' : 'value=$value';values this step42value42rawlabel ← value=42
3var value = int.tryParse(raw);4var label = value == null ? 'invalid' : 'value=$value';5print(label);values this stepvalue=42label42valueprint(label);
4 var label = value == null ? 'invalid' : 'value=$value';5 print(label);6}outputvalue=42values this stepvalue=42label
raw ← oops
1void main() {2 var raw = 'oops';3 var value = int.tryParse(raw);values this stepoopsrawvalue ← null
2var raw = 'oops';3var value = int.tryParse(raw);4var label = value == null ? 'invalid' : 'value=$value';values this stepnullvalueoopsrawlabel ← invalid
3var value = int.tryParse(raw);4var label = value == null ? 'invalid' : 'value=$value';5print(label);values this stepinvalidlabelnullvalueprint(label);
4 var label = value == null ? 'invalid' : 'value=$value';5 print(label);6}outputinvalidvalues this stepinvalidlabel
tryParse
`int.tryParse(text)` returns `int?` instead of throwing.
nullable result
`value == null` checks whether parsing failed.
fallback label
The ternary expression keeps output explicit for both paths.