Flutter - runZonedGuarded
Flutter 에서 Isolate 를 사용하는 경우 내부에서 발생하는 예외가 예외 처리 코드를 작성했음에도 불구하고 Unhandled exception 으로 발생하는 경우가 있다. 예를 들어 Socket Write 중에 다음과 같은 예외가 발생하는 경우 Unhandled 로 처리되고 프로그램이 올바르게 예외 처리를 하지 않는다. SocketException: Write failed (OS Error: Broken pipe, errno = 32) E/flutter (28440): [ERROR:flutter/runtime/dart_isolate.cc(1148)] Unhandled exception: E/flutter (28440): SocketException: Write failed (OS Error: Broken pipe, errno = 32), address = 0.0.0.0, port = 9999 E/flutter (28440): #0 _NativeSocket.write (dart:io-patch/socket_patch.dart:1182) E/flutter (28440): #1 _RawSocket.write (dart:io-patch/socket_patch.dart:1897) E/flutter (28440): #2 _Socket._write (dart:io-patch/socket_patch.dart:2334) E/flutter (28440): #3 _SocketStreamConsumer.write (dart:io-patch/socket_patch.dart:2082) E/flutter (28440): #4 _SocketStreamConsumer.addStream.<anonymous closure> (dart:io-patch/socket_patch.dart:2056) E/flutter (28440): #5 _RootZone.runUnaryGuarded (dart:async/zone.dart:...