Zastąp sprawdzony wyjątek wyjątkiem czasu wykonywania?

Biorąc pod uwagę, że zasadniczo chcę wyeliminować sprawdzone użycie wyjątków i przekształcić je w wyjątki czasu wykonywania, normalnie robiłbym coś takiego:

try {
    file.read();
} catch (IOException e){
    throw new RuntimeException(e); 
}

Jest to kilka wad, ale najbardziej denerwuje mnie to, że mój wyjątek czasu wykonywania zawiera zagnieżdżony stacktrace. Zasadniczo chciałbym ponownie rzucić „IOException” jako wyjątek RuntimeException (lub „IORuntimeException”) z oryginalną wiadomością i stacktrace, dzięki czemu mogę uniknąć bezużytecznego zagnieżdżonego śledzenia stosu. „Fakt”, że rzuciłem wyjątek gdzieś w środku, wydaje mi się po prostu bezużytecznym hałasem.

Czy to możliwe ? Czy istnieje biblioteka, która to robi?

questionAnswers(5)

yourAnswerToTheQuestion