Próbuję napisać kod nieblokujący w języku F #. Muszę pobrać stronę internetową, ale czasami ta strona nie istnieje i generowany jest wyjątek (404 Not Found) AsyncDownloadString. Próbowałem kodu poniżej, ale nie kompiluje.Obsługa wyjątków asynchronicznych w języku F #
Jak obsługiwać wyjątek od AsyncDownloadString?
Jak mam sobie radzić z wyjątkiem tutaj? Jeśli zostanie zgłoszony błąd, po prostu chcę zwrócić pusty ciąg lub ciąg z komunikatem.
Dziękuję Jack! To działa! :) Dlaczego Twoim zdaniem Async.Catch jest lepszym rozwiązaniem. Sądzę, że obsługa wyjątków powinna być wykonana w downloadPage, nie? – Martin
Myślę, że 'Async.Catch' jest lepszy, ponieważ: (1) zachowuje informacje o błędzie ... są inne powody, dla których wyjątek może być wyrzucony poza 404, i mając wyjątek zamiast" Błąd "ułatwia to zdiagnozować problem; (2) użycie 'Choice <_,_>' pozwala na użycie systemu typu do wymuszania ścieżek przetwarzania zarówno dla wyników, jak i błędów. –