זה משהו בסיסי בתכנות בכלל, לא רק ב JAVA
EXCEPTIONS (חריגות בלעז) זה מצב בו התכנית מבצעת פעולה בלתי חוקית וצריכה לעוף מיד, ברוב המקרים יש מה לעשות ע"מ לתקן את הליקוי.
אם אתה לא תתפוס את הEXCEPTION התכנית תעוף - זה אמור להראות לך שזה לא IF-ELSE...
אבל יש משהו בהקבלה הזו - כשאתה "מקיף" קטע קוד ב TRY עם CATCH ל EXCEPTION XXX אתה בעצם מבצע: IF EXCEPTION XXX THAN...
מה ששונה מבלוקים של IF ELSE זה שפה אתה מקבל את התכנית במצב לא ידוע, אתה לא יודע (באופן עקרוני, כמובן שאם אתה משתמש בזה נכון אתה יודע בדיוק איפה עפת ועל מה) מה ואיפה גרם לEXCEPTION.
שימוש נכון זה לעטוף קטעים קריטיים ע"מ לוודע סגירה של משאבים כמו למשל כתיבה ל DB שנכשלת: אתה תרצה לסגור את ה CONNECTION למרות שהפעולה נכשלה כי פעולת הפתיחה של ה CONNECTION בוצעה בהצלחה, זה הכתיבה שנכשלה...
באופן כללי - בשביל ניקויים כאלו ופעולות שחייבות להתבצע תמיד יש את FINALLY... שווה לך לקרוא עליו