Изучение
ErrorCategory, ErrorSeverity и ErrorCaptureSource
Область возникновения, влияние на приложение и граница среды выполнения, которая зафиксировала ошибку.
ErrorCategory, ErrorSeverity и ErrorCaptureSource
ErrorAssessment содержит категорию и серьёзность. Источник перехвата принадлежит исходному ErrorOccurrence. Эти характеристики отвечают на разные вопросы и не должны выводиться друг из друга.
ErrorCategory: в какой области произошла ошибка?
Закрытый набор содержит domain, application, infrastructure, integration, framework, configuration, lifecycle и unknown. Приложение расширяет правила через упорядоченные реализации ErrorClassifier, а не через строковые категории.
ErrorSeverity: как ошибка влияет на приложение?
recoverable— одна операция завершилась неуспешно, но состояние осталось согласованным;degraded— приложение продолжает работу с ограниченной функциональностью;critical— подсистеме или области приложения требуется управляемое восстановление;fatal— процесс или Isolate не может безопасно продолжать работу.
Свойства наподобие requiresApplicationTermination определяются extension для enum. Отдельный флаг не может противоречить ErrorSeverity.
ErrorCaptureSource: где ошибка была зафиксирована?
Возможные значения: zone, framework, platform, isolate и reported. Ошибка, о которой сообщил Flutter Framework, не обязательно критическая, а ошибка, перехваченная в Zone, — фатальная.
Классификаторы выполняются в порядке регистрации. Ошибку обрабатывает первый поддерживающий её ErrorClassifier. Завершающий DefaultErrorClassifier гарантирует оценку unknown/critical для всех остальных случаев.