Класс FlutterErrorDetails
Объект FlutterErrorDetails передают в
reportError,
presentError
и dumpErrorToConsole.
Поле exception хранит сам сбой,
stack содержит цепочку вызовов,
library задаёт имя подсистемы Flutter.
Синтаксис
FlutterErrorDetails(
exception: exception,
stack: stack,
library: library,
)
Параметры
| Параметр | Описание |
|---|---|
exception |
Сам сбой: объект ошибки или исключение. |
stack |
Цепочка вызовов на момент сбоя. |
library |
Имя подсистемы Flutter, в которой произошёл сбой. |
Пример
Давайте отправить details через reportError:
import 'package:flutter/material.dart';
void main()
{
FlutterError.reportError(
FlutterErrorDetails(
exception: Exception('abcde'),
library: 'demo',
),
);
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text('abcde'),
),
),
),
);
}
На экране 'abcde'; в консоли появятся поля details с тем же текстом в exception.
Пример
Давайте сохранить stack и вывести код 12345:
import 'package:flutter/material.dart';
void main()
{
try {
throw StateError('12345');
} catch (e, st) {
final details = FlutterErrorDetails(
exception: e,
stack: st,
);
FlutterError.dumpErrorToConsole(details);
}
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text('12345'),
),
),
),
);
}
На экране '12345'; dumpErrorToConsole напечатает stack из stack.
Смотрите также
-
класс
FlutterError,
который принимаетFlutterErrorDetailsвreportError -
класс
ErrorWidget,
которому передают details в builder -
метод
presentError,
который рисует красный экран из details -
класс
TickerCanceled,
который кладут в exception при отмене ticker