Pokud používáte Apache Commons Lang, podívejte se na ExceptionUtils.getRootCause(), abyste nemuseli znovu objevovat kolo.
Má cenu zařazovat knihovnu jen kvůli tomu? Možná ne. Ale pokud ji již máte na své classpath, je tu pro vás a mějte na paměti, že dělá některé věci, které by „naivní“ implementace dělat nemusela (např. řeší cykly v řetězci příčin... fuj!)