non_ type_ in_ catch_ clause
The name '{0}' isn't a type and can't be used in an on-catch clause.
Description
#
The analyzer produces this diagnostic when the identifier following the
on
in a
catch
clause is defined to be something other than a type.
Example
#
The following code produces this diagnostic because
f
is a function, not
a type:
void f() {
try {
// ...
} on f {
// ...
}
}
Common fixes
#Change the name to the type of object that should be caught:
void f() {
try {
// ...
} on FormatException {
// ...
}
}
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-9-1. View source or report an issue.