Czy w Javie istnieje sposób na pobranie (złapanie) wszystkich exceptions
zamiast przechwytywania wyjątku indywidualnie?
java
exception
file
exception-handling
Johanna
źródło
źródło
Odpowiedzi:
Jeśli chcesz, możesz dodać klauzule throws do swoich metod. Wtedy nie musisz od razu łapać sprawdzonych metod. W ten sposób możesz złapać
exceptions
później (być może w tym samym czasie co inneexceptions
).Kod wygląda następująco:
Później możesz sobie z nimi poradzić,
exceptions
jeśli nie chcesz zajmować się nimi tą metodą.Złapać wszystkie wyjątki jakiś fragment kodu może rzucać można zrobić: (To będzie także złapać
Exceptions
sam napisałeś)Powodem, który działa, jest to, że
Exception
jest to klasa bazowa dla wszystkich wyjątków. Zatem każdy wyjątek, który może zostać wyrzucony, toException
(wielka litera „E”).Jeśli chcesz najpierw obsłużyć własne wyjątki, po prostu dodaj
catch
blok przed ogólnym wyjątkiem.źródło
Chociaż zgadzam się, że przechwytywanie surowego wyjątku nie jest dobrym stylem, istnieją sposoby obsługi wyjątków, które zapewniają lepsze rejestrowanie i możliwość obsługi nieoczekiwanych. Ponieważ jesteś w wyjątkowym stanie, prawdopodobnie jesteś bardziej zainteresowany uzyskaniem dobrych informacji niż czasem odpowiedzi, więc wystąpienie wydajności nie powinno być wielkim hitem.
Jednak nie bierze to pod uwagę faktu, że IO może również zgłaszać błędy. Błędy nie są wyjątkami. Błędy są w innej hierarchii dziedziczenia niż Wyjątki, chociaż oba mają wspólną klasę bazową Throwable. Ponieważ IO może rzucać błędy, możesz posunąć się nawet do złapania Throwable
źródło
Złap podstawowy wyjątek „Wyjątek”
źródło
Wyłapywanie wyjątków jest złą praktyką - jest po prostu zbyt szerokie i możesz przegapić coś takiego jak wyjątek NullPointerException we własnym kodzie.
W przypadku większości operacji na plikach wyjątek główny stanowi IOException . Zamiast tego lepiej to złapać.
źródło
Tak jest.
źródło
Możesz złapać wiele wyjątków w jednym bloku catch.
źródło
Czy masz na myśli złapanie
Exception
dowolnego typu, który jest wyrzucony, a nie tylko określone Wyjątki?W takim razie:
źródło