Agar tidak menemukan kembali roda, jika Anda menggunakan Apache Commons Lang, lihat ExceptionUtils.getRoot Cause().
Apakah layak memasukkan perpustakaan hanya untuk itu? Mungkin tidak. Tetapi jika Anda sudah memilikinya di classpath Anda, itu ada untuk Anda, dan perhatikan bahwa itu melakukan beberapa hal yang mungkin tidak dilakukan oleh implementasi 'naif' (mis. menangani siklus dalam rantai penyebab... ugh!)