تمامی خطاها (error) و exception ها در جاوا فرزند کلاس Throwable می باشند.
checked به معنی کنترل شده است و منظور از checked exception آن دسته از exception هایی است که امکان رخ دادن آنها در برنامه در زمان کامپایل توسط کامپایلر جاوا کنترل می شود و اگر امکان بروز checked exception در برنامه وجود داشت و برنامه نویس با استفاده از try catch یا کلمه کلیدی throws آن را کنترل نکرده بود کامپایلر خطا می دهد، در حالی که کامپایلر جاوا هیچ کنترلی در زمان کامپایل برای امکان وقوع unchecked exception ها انجام نمی دهد.
در جاوا کلاس های Error و RuntimeException بهمراه کلاس های فرزند این دو کلاس که unchecked هستند (مانند NullPointerException یا OutOfMemoryError) و سایر کلاس های فرزند Throwable مانند کلاس Exception از نوع checked هستند (برای مثال ParseException یا IOException).