معالجة الإستثناءات عبر try catch في لغة جافا JAVA الدرس |17| - Programmer Tech

Programmer Tech

تعلم البرمجة - علوم الكمبيوتر - أمن المعلومات - القرصنة الأخلاقية

إعلان اعلى المقالة

الاثنين، 30 نوفمبر 2020

معالجة الإستثناءات عبر try catch في لغة جافا JAVA الدرس |17|


الإستثناءات في لغة جافا

سوف نأخذ في هذا الدرس بما يُسمى الأخطاء الشائعة او Exception و يوجد نوعان من الأخطاء و هي خطأ يقع به المبرمج و خطأ يقع به المستخدم و المبرمج هو من يقوم بكتابة و بناء البرنامج و المستخدم هو الذي يقوم بإستخدام البرنامج و إدخال البيانات.

الخطأ الذي يقع به المبرمج عند كتابة الكود يتولى أمره المبرمج و يقوم بإصلاحه, هدفنا في هذا الدرس هو الخطأ الذي يقوم به المستخدم و هو عند إدخال البيانات قد يدخل بيانات خاطئة مما يؤدي إلى تعليق البرنامج و تهنيجه و وقوفه عن العمل, لذلك المبرمج يجب أن يتوقع تلك الأخطاء و إستكشافها, فمثلاً عند الإدخال قد يقوم المستخدم بإدخال بيانات نصية في مكان بيانات عددية و هذا مرفوض تماماً لأن الأعداد لا تقبل سوى بيانات عددية, أو يقوم المستخدم عند القسمة على قيمة صفرية و يتم القسمة على صفر و يحدث هناك خطأ, أو يقوم المستخدم بإدخال بيانات كثيرة جداً يؤدي إلى خطأ إسمه Overflow هذه الأخطاء يتوقعها المبرمج.


كيف نقوم بمعالجة الأخطاء التي يقع بها المستخدم؟

الجواب هو أن نقوم بمعالجة هذا النوع من الأخطاء بما يسمى try و catch.

يتم وضع الخطأ الذي يقع به المستخدم ما بين try و catch ليقوما بتجاهل هذا الخطأ أو تصيده و منع البرنامج من التعليق و الخروج من العمل.

 

الشكل العام له

try{

//الأوامر الذي نتوقع حدوث خطأ بها

}catch(نوع الإستثناء){

// الأوامر الذي تتنفذ في حال التقاط إستثناء

}

 

مثال

package lessontry;
import java.util.Scanner;
public class Lessontry {
    
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        int x1,x2,x3;
        x1=s.nextInt();
        x2=s.nextInt();
        x3=x1/x2;
        System.out.println(x3);
       
        }
    
    }

 

عند تشغيل هذا البرنامج إذا قمنا بعملية قسمة عادية فلن يحدث أي خطأ, أما إذا قمنا بالقسمة على 0 سوف يظهر خطأ و يعلق البرنامج لدى المستخدم و يخرج من البرنامج, لتفادي هذه المشكلة يجب أن نتصيّد و نتوقع هذه الأخطاء و وضعها ضمن try و catch لتجنب هذه المشاكل و لتجنب المشكلة الذي حدثت في المثال السابق تكون كالتالي 

package lessontry;
import java.util.Scanner;
public class Lessontry {
    
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        try{
        int x1,x2,x3;
        x1=s.nextInt();
        x2=s.nextInt();
        x3=x1/x2;
        System.out.println(x3);
        }catch(Exception e) {System.out.println(e.getMessage());}
    }
    
}

 

بهذه الطريقة لقد تفادينا المشكلة و عندما يدخل المستخدم قيمة قسمة على 0 سوف تظهر له رسالة بأنه أنت قمت بإدخال قيمة خاطئة و هي 0 أي لا يتم القسمة على صفر في عالم الرياضيات.

 

أي كود تتوقع المستخدم أن يقع به في بعض الأحيان ضعه بين try و catch لتجنب المشاكل


وضع اكثر من catch في البرنامج

في بعض الأحيان البرنامج يواجه اكثر من عملية خطأ, حينها يجب علينا أن نتصيد كل الأخطاء لضمان عدم حدوث أي خطأ في البرنامج.


الشكل العام له

try {

 //اوامر البرنامج الذي قد تحدث بها أخطاء

}

catch (Exception1 e1){

 // الأوامر الذي تتنفذ في حال التقاط استئناء

}

catch (Exception2 e2){

 // الأوامر الذي تتنفذ في حال التقاط استئناء

}

نستطيع وضع الكثير من جمل catch في البرنامج حسب عدد الاخطاء الذي نتوقع حدوثها.

ليست هناك تعليقات:

إرسال تعليق

facebook

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *