Biorąc pod uwagę, że w zasadzie chcą wyeliminować sprawdzane wykorzystanie wyjątku i przekształcić je z czasem przebiegu wyjątki, ja zwykle robi coś takiego:Zamień zaznaczony wyjątek na wyjątek środowiska wykonawczego?
try {
file.read();
} catch (IOException e){
throw new RuntimeException(e);
}
Istnieje kilka wad w ten sposób, ale ten, który mi się irytuje większość jest taka, że mój wyjątek środowiska wykonawczego zawiera zagnieżdżony stacktrace. Zasadniczo chciałbym ponownie rzucić "IOException" jako RuntimeException (lub "IORuntimeException") z oryginalnym komunikatem i stacktrace, więc mogę uniknąć bezużytecznego zagnieżdżonego stacktrace. "Fakt", w którym ponownie rzuciłem wyjątek gdzieś pośrodku, wydaje mi się po prostu bezużytecznym hałasem.
Czy to możliwe? Czy jest jakaś biblioteka, która to robi?
Czy [this] (http://robaustin.wikidot.com/rethrow-exceptions) jest pomocny? –
Jeśli jesteś zirytowany zagnieżdżonymi śladami stosu, będziesz nienawidzić większości frameworków i bibliotek, które mają tendencję do intensywnego korzystania z nich. Po prostu przyzwyczaiłbym się do tego, gdybym był tobą. – artbristol
@KazekageGaara, dobrze. Załatwię to, jeśli napiszesz to jako odpowiedź. – missingfaktor