Error
- เป็น Unchecked Type
- อยู่ในคลาส
java.lang.Error - ไม่สามารถกู้คืน (recover) ได้
- ไม่เกิดขึ้นตอนคอมไพล์ (Compile-time)
- ตัวอย่าง:
OutOfMemoryError,IOError
Exception
- แบ่งเป็น Checked และ Unchecked Exception
- อยู่ในคลาส
java.lang.Exception - สามารถกู้คืนได้ (catch และ handle)
- เกิดขึ้นได้ทั้ง Runtime และ Compile-time
- ตัวอย่าง:
NullPointerException,SQLException
สรุปความแตกต่าง
| คุณสมบัติ | Error | Exception |
|---|---|---|
| ประเภท | Unchecked เท่านั้น | Checked และ Unchecked |
| คลาส | java.lang.Error | java.lang.Exception |
| การกู้คืน | ไม่ได้ | ได้ |
| เวลาเกิด | Runtime เท่านั้น | Runtime และ Compile-time |