Słyszałem od niektórych osób, że w Scali mamy tendencję (podobnie jak inne języki funkcyjne), aby nie przerywać przepływu sterowania. Zamiast tego, zgodnie z konwencją, zwracamy błąd w postaci Either
Left
.Obsługa błędów za pomocą albo -> Gdzie jest stos śledzenia?
Ale w jaki sposób uzyskujemy tracktrack z tego wyjątku? Na razie wracam po lewej stronie do zwykłej klasy przypadku Error
z kodem, wiadomością i przyczyną (Error
). Ale jeśli mam błąd, nie mogę pobrać stosu. Jeśli moja aplikacja stanie się skomplikowana, może być trudno znaleźć blok kodu, który zwrócił ten Error
... Przyczyna główna jest niezbędna.
Co zatem robimy w praktyce?
Jeżeli wrócę, zamiast zwyczaju Error
, rodzaj java Exception
lub Throwable
w moim Left
? Jaka jest najlepsza praktyka obsługi wyjątków Scala bez utraty ważnych informacji, takich jak stacktrace i przyczyna?
Tak samo jak w przypadku nadchodzącej Scala 2.10 [jest również Try] (http://blog.richdougherty.com/2012/06/error-handling-with-scalas-try.html) do obsługi błędów –
@ om nom-nom dzięki temu wydaje się naprawdę fajnie! –