РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
443 of 723 menu

Ветка catch

Ветка catch является частью конструкции try-catch и предназначена для перехвата исключений, которые могут возникнуть при выполнении кода в блоке try. Когда в блоке try происходит ошибка, управление передается в ветку catch. В круглых скобках ветка catch принимает объект исключения, который можно использовать для анализа ошибки. Также можно указать второй параметр - объект StackTrace, содержащий информацию о стеке вызовов в момент возникновения исключения.

Синтаксис

try { // code that might throw an exception } catch (e, stackTrace) { // handle the exception }

Пример

Давайте попробуем преобразовать строку в число, которая не является числом. Это вызовет исключение FormatException, которое мы перехватим в ветке catch:

void main() { try { int.parse('abcde'); } catch (e) { print('Caught an exception: $e'); } }

Результат выполнения кода:

"Caught an exception: FormatException: Invalid radix-10 number (at character 1) abcde ^"

Пример

Давайте перехватим исключение и выведем информацию о стеке вызовов, используя второй параметр ветки catch:

void main() { try { int.parse('12345abcde'); } catch (e, stackTrace) { print('Exception: $e'); print('Stack trace: $stackTrace'); } }

Результат выполнения кода:

"Exception: FormatException: Invalid radix-10 number (at character 6) 12345abcde ^ Stack trace: #0 int.parse (dart:core) #1 main (file:///path/to/your/file.dart:4:11) #2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:17) #3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)"

Пример

Давайте используем ветку catch для обработки разных типов исключений, проверяя их тип через оператор is:

void main() { try { List<int> numbers = [1, 2, 3]; print(numbers[10]); } catch (e) { if (e is RangeError) { print('Range error occurred: $e'); } else { print('Another error: $e'); } } }

Результат выполнения кода:

"Range error occurred: RangeError (index): Invalid value: Not in inclusive range 0..2: 10"

Смотрите также

  • ключевое слово try,
    которое определяет блок кода для проверки на исключения
  • ключевое слово on,
    которое позволяет перехватывать исключения конкретного типа
  • ключевое слово finally,
    которое выполняет код независимо от возникновения исключения
  • ключевое слово throw,
    которое используется для генерации исключения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить