앱 어딘가에서 예상 못한 에러가 터져도, 앱이 조용히 죽지 않고 그 에러를 잡아 기록으로 보내게 하는 장치. (일반 개념)
코드 한 덩어리를 감싸면, 그 안에서 난 에러를 한곳에서 잡을 수 있다. runZonedGuarded는 "이 덩어리를 지켜보다가 에러 나면 이 함수로 보내"를 지정한다.
runZonedGuarded(
() {
// 앱 실행 (여기서 뭐가 터지든)
},
(error, stack) {
// 여기로 잡혀 온다 → 로그/에러추적 서버로 전송
},
);
최상위 ErrorBoundary + window.onerror를 합친 것. "안 잡힌 에러 전부"의 마지막 그물.
실전에선 에러 감시를 여러 겹으로 건다:
FlutterError.onError — 위젯(화면)에서 난 에러PlatformDispatcher.onError — 비동기 에러runZonedGuarded — 그 외 전부 (마지막 그물)