अपवाद वर्ग और त्रुटि वर्ग दोनों java.lang.Throwable वर्ग के उपवर्ग हैं, हम रनटाइम पर अपवादों को संभालने में सक्षम हो सकते हैं लेकिन त्रुटियों को हम संभाल नहीं सकते हैं।
- अपवाद वे ऑब्जेक्ट हैं जो रन टाइम पर होने वाली तार्किक त्रुटियों का प्रतिनिधित्व करते हैं और JVM को "अस्पष्टता" की स्थिति में प्रवेश कराते हैं।
- इन रन टाइम त्रुटियों का प्रतिनिधित्व करने के लिए JVM द्वारा स्वचालित रूप से बनाई गई वस्तुओं को अपवाद के रूप में जाना जाता है। एक त्रुटि थ्रोएबल वर्ग का एक उपवर्ग है जो गंभीर समस्याओं को इंगित करता है कि एक उचित अनुप्रयोग को पकड़ने की कोशिश नहीं करनी चाहिए। ऐसी अधिकांश त्रुटियां असामान्य स्थितियां हैं।
- यदि कोई अपवाद होता है तो हम कोशिश करें और पकड़ें ब्लॉक का उपयोग करके इसे संभाल सकते हैं। यदि कोई त्रुटि होती है तो हम इसे संभाल नहीं सकते हैं, प्रोग्राम का निष्पादन समाप्त कर दिया जाएगा।
- अपवाद में हमारे पास दो प्रकार हैं, एक चेक किया गया अपवाद है और दूसरा अनियंत्रित अपवाद है, त्रुटि डिफ़ॉल्ट रूप से अनियंत्रित अपवाद है।
- एक अपवाद java.lang.Exception प्रकार का है और एक त्रुटि java.lang.Error प्रकार की है।