Блок try и catch в Dart
Конструкция try с блоком catch делит
участок кода на попытку выполнения и реакцию
на сбой. В try размещают команды, которые
могут завершиться исключением. В catch -
код, который выполнится, если исключение
действительно возникло.
В Dart тип исключения указывают через on,
а объект ошибки связывают с переменной после
catch. Запишем общий вид:
try {
// code that may fail
} on SomeException catch (e) {
// handle the failure
}
Обратимся к элементу списка по неверному индексу без обработки - программа остановится с ошибкой. С перехватом выведем понятное сообщение:
var nums = [1, 2, 3];
try {
print(nums[10]);
} on RangeError catch (e) {
print("index out of range");
}
Если в try исключения не было, блок
catch пропускается. После пары
try-catch выполнение идет дальше,
как после обычной команды:
var nums = [5, 6, 7];
try {
print(nums[0]);
} on RangeError catch (e) {
print("index out of range");
}
print("done");
Переменная в catch хранит объект исключения.
Через e.toString() можно вывести текст,
который сформировала среда выполнения.
Даны два целых числа a и b.
Поделите a на b через целочисленное
деление. При делении на ноль выведите строку
"division by zero".
Даны список и индекс:
var nums = [4, 8, 15];
var index = 10;
Выведите элемент списка по этому индексу.
При неверном индексе выведите "bad index".
Дана строка text. Преобразуйте ее в целое
число через int.parse. При ошибке формата
выведите "not a number".