القبض على الاستثناءات

في المثال السابق، يمكن للعملية processFile أن تسبب FileNotFoundException وIOException. ونظراً لأن main تستدعي processFile، فعليها التصريح عن نفس الاستثناءات. في برنامج أكبر من هذا، قد تصرح main عن كل الاستثناءات الموجودة في اللغة.
إن البديل لهذا هو القبض (catch) على الاستثناء بتعليمة try. هذا مثال عن كيفية عمل ذلك:
كود:
public static void main(String[] args) {
                                      
    try {
        processFile("words.txt");
    } catch(Exception ex) {
        System.out.println("That didn't work. Here's why:");
        ex.printStackTrace();
    }
}
البنية مشابهة لبنية تعليمة if. إذا اشتغل "الفرع" الأول بدون التسبب باستثناء، يتم تجاوز الفرع الثاني.
إذا تسبب الفرع الأول باستثناء، يقفز مسار التنفيذ إلى الفرع الثاني، الذي يحاول معالجة حالة الاستثناء (طريقة مهذبة لنقول "الخطأ"). في هذه الحالة سيطبع البرنامج رسالة خطأ بالإضافة إلى دليل المكدس (stack trace).
يمكنك تنزيل هذه الشفرة من http://thinklikecs.webs.com/resources/code/Words.java
وقائمة الكلمات من
http://thinklikecs.webs.com/resources/code/words.txt.
الآن اذهب وحل التمارين 8.9، 8.1