Я пытаюсь поймать PlatformException
, поднятый на FlutterBlue.instance
.Я поместил попытку кроме блока в это ожидание, но в моем отладчике все еще возникает исключение.Что я делаю не так?
import 'package:flutter/services.dart';
import 'package:flutter_blue/flutter_blue.dart';
...
Stream<BluetoothState> _getBluetoothState() async* {
bool isAvailable = false;
try {
// This always raises a PlatformException
// in the vscode debugger
isAvailable = await FlutterBlue.instance.isAvailable;
} on PlatformException catch(e) {
// This doesn't seem to ever catch anything
debugPrint('$e');
} catch(e) {
// Doesn't catch my exception either.
debugPrint('$e');
}
// Wrap the original stream that fails to handle this exception..
if (isAvailable) {
await for (BluetoothState state in FlutterBlue.instance.state) {
yield state;
}
} else {
yield BluetoothState.unavailable;
}
}
ОБНОВЛЕНИЕ: На самом деле, я даже не уверен, что это связано с асинхронностью / ожиданием, я считаю, FlutterBlue.instance
вызывает ошибку, и это не асинхронно.Это просто добытчик.Я новичок в дартсе, и это довольно сильно меня потеряло.