Класс ErrorWidget
Когда build падает, Flutter рисует ErrorWidget
с сообщением из
FlutterErrorDetails.
Глобальную заглушку задают через ErrorWidget.builder
до runApp.
Синтаксис
ErrorWidget.builder = (FlutterErrorDetails details) {
return Text('abcde');
};
Параметры
| Параметр | Описание |
|---|---|
details |
Детали сбоя для текста на экране. |
Пример
Давайте показать свой текст abcde при ошибке:
import 'package:flutter/material.dart';
void main()
{
ErrorWidget.builder = (details) {
return Material(
child: Center(
child: Text('abcde'),
),
);
};
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text('abcde'),
),
),
),
);
}
При штатном запуске на экране по центру 'abcde'; при падении build builder вернёт тот же текст.
Пример
Давайте бросить ошибку в build и увидеть 12345:
import 'package:flutter/material.dart';
class Bad extends StatelessWidget {
@override
Widget build(BuildContext context) {
throw Exception('12345');
}
}
void main()
{
ErrorWidget.builder = (details) {
return Text('12345');
};
runApp(
MaterialApp(
home: Scaffold(
body: Bad(),
),
),
);
}
Вместо Bad на экране появится '12345' из builder.
Смотрите также
-
класс
FlutterError,
который настраивает onError до runApp -
класс
FlutterErrorDetails,
который приходит в builder -
метод
presentError,
который показывает стандартный красный экран -
класс
NetworkImageLoadException,
которую ловят через errorBuilder уImage