Класс FlutterError
Класс FlutterError перехватывает assert и
ошибки построения виджетов.
Обработчик задают через FlutterError.onError
или методы reportError,
presentError и dumpErrorToConsole.
Детали сбоя упаковывают в
FlutterErrorDetails.
Синтаксис
FlutterError.onError = (details) {
FlutterError.presentError(details);
};
Методы
| Метод | Описание |
|---|---|
dumpErrorToConsole |
Печатает FlutterErrorDetails в консоль. Давайте вызовем его.
|
presentError |
Рисует стандартный красный экран ошибки в debug. |
reportError |
Передаёт FlutterErrorDetails в обработчик.
|
Пример
Давайте выведем сообщение через FlutterError:
import 'package:flutter/material.dart';
void main()
{
FlutterError.onError = (details) {
print('abcde');
FlutterError.dumpErrorToConsole(details);
};
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text('abcde'),
),
),
),
);
}
На экране строка 'abcde'; при ошибке в консоли
сначала появится 'abcde' из обработчика.
Пример
Давайте вызовем reportError вручную:
import 'package:flutter/material.dart';
void main()
{
FlutterError.reportError(
FlutterErrorDetails(
exception: Exception('12345'),
library: 'demo',
),
);
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text('12345'),
),
),
),
);
}
На экране '12345'; reportError отправит детали
в текущий обработчик FlutterError.
Смотрите также
-
метод
reportError,
который передаётFlutterErrorDetailsв цепочку -
класс
FlutterErrorDetails,
который описывает место и причину сбоя -
класс
ErrorWidget,
который рисуют вместо упавшего виджета -
метод
dumpErrorToConsole,
который печатает stack trace в консоль