Оператор try
Оператор try позволяет заключить блок кода,
в котором может возникнуть исключение, и перехватить
его с помощью блоков catch или on.
Это предотвращает аварийное завершение программы
и дает возможность обработать ошибку. Оператор try
не принимает параметров, но обязательно должен
сопровождаться хотя бы одним блоком catch,
on или finally.
Синтаксис
try {
// код, который может вызвать исключение
} on ExceptionType {
// обработка конкретного типа исключения
} catch (e) {
// обработка любого исключения
} finally {
// код, который выполнится в любом случае
}
Пример
Давайте попробуем преобразовать строку с нечисловым
содержимым в число и перехватим возникшее исключение
с помощью блока catch:
void main()
{
try {
int res = int.parse('abcde');
print(res);
} catch (e) {
print('Error: $e');
}
}
Результат выполнения кода:
"Error: FormatException: Invalid radix-10 number (at character 1)
abcde
^
"
Пример
Давайте используем блок on для обработки
конкретного типа исключения FormatException:
void main()
{
try {
int res = int.parse('12345abcde');
print(res);
} on FormatException {
print('Invalid number format');
}
}
Результат выполнения кода:
"Invalid number format"
Пример
Давайте добавим блок finally, который
выполнится независимо от того, возникло исключение
или нет:
void main()
{
try {
int res = int.parse('12345');
print(res);
} catch (e) {
print('Error: $e');
} finally {
print('Done');
}
}
Результат выполнения кода:
12345
"Done"