Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1021 of 1024 menu
◀ ▶

Класс PlatformException

При вызове MethodChannel.invokeMethod платформа может вернуть PlatformException с кодом code, текстом message и необязательным details. Его ловят в try/catch на стороне Dart и показывают пользователю или логируют через FlutterError.

Синтаксис

PlatformException( code: code, message: message, details: details, )

Параметры

Параметр Описание
code Короткий код ошибки со стороны платформы.
message Текст, который можно показать пользователю.
details Дополнительные данные. Можно не задавать.

Пример

Давайте поймать PlatformException и показать abcde:

import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: FutureBuilder<String>( future: () async { const channel = MethodChannel('demo/abcde'); try { await channel.invokeMethod('fail'); return 'ok'; } on PlatformException catch (e) { return e.message ?? 'abcde'; } }(), builder: (context, snap) { return Center( child: Text(snap.data ?? 'abcde'), ); }, ), ), ), ); }

Если канал не реализован, на экране будет 'abcde' из ветки catch.

Пример

Давайте создать исключение с кодом 12345:

import 'package:flutter/services.dart'; void main() { final error = PlatformException( code: '12345', message: 'native fail', ); print(error.code); print('abcde'); }

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

12345 abcde

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить