البرمجة

فارق بين Throw وThrows في جافا

في لغة البرمجة جافا، هناك فارق بين استخدام “throw” و”throws”، ويتعلق هذا الفارق بطريقة التعامل مع الاستثناءات (Exceptions) في البرنامج.

عندما نستخدم كلمة المفتاح “throw”، فإننا نستخدمها داخل الكود لرمي (إثارة) استثناء (Exception) يدويًا في حالة حدوث حالة غير متوقعة أو خاطئة. على سبيل المثال، في الكود الذي قدمته، تستخدم “throw” لرمي استثناء من نوع “ArithmeticException” في حالة عدم استيفاء شرط معين (إذا كان الدرجة أقل من 5).

أما “throws”، فهو تستخدم في تعريف الوظائف (الميثودز) للإشارة إلى أن هذه الوظيفة قد تقوم برمي استثناء من نوع معين، وبالتالي يجب أن يتم التعامل مع هذا الاحتمال عند استدعاء الوظيفة أو تجنبه بواسطة كتابة الكود داخل بنية try-catch للتعامل مع الاستثناءات الممكنة. في الكود الخاص بك، تستخدم “throws” لتعريف أن الوظيفة “checkThrowsExep” قد تقوم برمي استثناء من نوع “ArithmeticException”.

أما بالنسبة لسؤالك حول عدم وصول التنفيذ للسطر “t.checkThrowsExep” في الدالة الرئيسية “main”، فالسبب في ذلك هو أنه عند تنفيذ هذا السطر يحدث استثناء من نوع “ArithmeticException” نتيجة لقسمة عدد على الصفر، ولم يتم التعامل مع هذا الاستثناء داخل الدالة “main” باستخدام بنية try-catch، وبالتالي يتوقف التنفيذ مباشرةً ولا يتم استكمال السير البرمجي. لحل هذه المشكلة، يمكنك استدعاء الوظيفة “checkThrowsExep” داخل بنية try-catch أو معالجة الاستثناء داخل الدالة نفسها باستخدام بنية try-catch.

باختصار، “throw” تستخدم لرمي استثناء يدويًا داخل الكود، بينما “throws” تستخدم لتعريف أن الوظيفة قد تقوم برمي استثناء، ويجب التعامل مع هذا الاحتمال عند استدعاء الوظيفة.

المزيد من المعلومات

بالطبع، دعوني أوضح المزيد حول استخدام “throw” و”throws” في لغة البرمجة جافا.

  1. استخدام throw:

    • عند استخدام “throw”، يتم رمي استثناء (Exception) يدويًا من داخل الكود.
    • يتم استخدام “throw” لرمي استثناءات في حالات الخطأ أو الحالات غير المتوقعة.
    • يمكن استخدام “throw” لرمي أي نوع من الاستثناءات المتوفرة في جافا، مثل ArithmeticException أو NullPointerException أو أي استثناءات مخصصة.
    • يعمل “throw” على إيقاف تنفيذ الكود في النقطة التي تم فيها رمي الاستثناء إلى الأسفل، ويتم البحث عن كتلة try-catch للتعامل مع الاستثناء.
  2. استخدام throws:

    • عند استخدام “throws”، يتم استخدامه في توقيع (تعريف) الوظائف (الميثودز).
    • يستخدم “throws” لتحديد أن الوظيفة قد تقوم برمي استثناء من نوع معين.
    • يُضاف “throws” بعد تعريف المعلمة الأخيرة للوظيفة وقبل الجسم الوظيفة.
    • يتوجب على المُستدعي لهذه الوظيفة التعامل مع استثناءات الممكنة باستخدام بنية try-catch أو تحديدها أيضًا باستخدام “throws” في توقيع الوظيفة.

عند التعامل مع الاستثناءات في جافا، يجب أن تكون هناك استراتيجية واضحة لإدارة الأخطاء. يُفضل استخدام “throw” للحالات التي يمكن التنبؤ بها ويُمكن معالجتها داخل الكود، بينما يُستخدم “throws” للإشارة إلى استثناءات قد تحدث ويجب على المستدعين للوظيفة التعامل معها.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر