У меня есть приложение Xamarin, использующее Microsoft.Azure.Devices.Client.DeviceClient для прослушивания сообщений из концентратора Azure IoT. Иногда я получаю ошибки, которые я не могу поймать, и иметь дело с ними. Одним из таких исключений является:Azure IoTHub исключая исключения Я не могу поймать
Microsoft.Azure.Devices.Client.Exceptions.UnauthorizedException
Это исключение является лишь примером исключения я получаю, и тот, который я могу достоверно воссоздают путем изменения системного времени. Другие IoTHubExceptions являются спорадическими и трудными для воссоздания, и, следовательно, необходимо попробовать исключение.
Может ли кто-нибудь сказать мне, как я могу поймать эти ошибки на основе IoT-хаба? Код:
try
{
await _deviceClientInbound.OpenAsync();
// execution never gets passed this line and the exception is eventually thrown, having reached this point
Message receivedMessage = await _deviceClientInbound.ReceiveAsync();
if (receivedMessage == null) continue;
await _deviceClientInbound.CompleteAsync(receivedMessage);
}
catch (Exception e)
{
// Exception is never caught in here ...
// How can I catch the IoTHubException based exceptions
}
ли функция, где этот код объявлен как возвращающая 'Задачу 'или' Задача '? Вы также уверены, что его бросают из этих звонков? –
juunas
Да, сигнатура метода - это «приватная асинхронная задача StartReceiverAsync()», в то время как я не могу быть на 100% уверен, что именно этот вызов вызывает проблему. Это единственное место, где я делаю все, что связано с IoTHub, и проблема возникает только тогда, когда выполнение достигает этого кода. – Slicc