Java menaxhon gabimet me try/catch/finally dhe në mënyrë unike dallon përjashtimet e kontrolluar (duhet të deklarohen ose të trajtohen) nga përjashtimet e pakontrolluar (në kohën e ekzekutimit, nuk zbatohen). Kuptimi i këtij dallimi është qendror për menaxhimin e gabimeve në Java.
