أجهزة الكمبيوتربرمجة

جافا: الاستثناءات وتعاملهم

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

عندما قد تحتاج معالجة الاستثناء

في جاوة، يمكن أن يكون سبب استثناء إدخال المستخدم غير صحيح، لا حاجة لمورد أو المفاجئ برنامج شبكة انقطاع. لاستخدام مريح إنشاؤها من قبل مطور التطبيق، يجب مراقبة حدوث حالات الطوارئ. لا ينبغي أن يكون المستهلك على الانتظار لإنهاء تطبيق، إلى فقدان البيانات نتيجة لاستثناء غير معالج، أو مجرد جزء من تظهر رسالة تفيد أن ما حدث من خطأ.

معالجة الاستثناءات جافا

الى ماذا تنظر؟ لغة جافا لديها المدمج في وظائف معالجة الاستثناء الخاصة بها. وبطبيعة الحال، فإن نسبة كبيرة من الخطأ اشتعلت من مرحلة تجميع آخر، سيقوم النظام يخطر تلقائيا أن استخدامه لم يعد ممكنا. ولكن هناك هذا النوع من الاستثناء الذي يحدث في وقت التشغيل. وينبغي أن يكون المطور قادرا على توقع عليها وتصميم التعليمات البرمجية بحيث لا تسبب خطأ، والتعامل معها بطريقة خاصة وسلمت السيطرة على فرع آخر.

في جافا، وهذا هو المفروض من قبل المجمع لجذب استثناء، لذلك من المعروف أن المشاكل النموذجية ولها أنماط ممارسة القياسية.

الاستثناءات النموذجية

وأبسط مثال، حيث يمكنك الحصول على استثناء - هذا التقسيم. وعلى الرغم من بساطته، من حيث، كما المفرق، قد يكون صفرا، الأمر الذي سيؤدي في خطأ. حسنا، إذا كان من الممكن التنبؤ بظهور الماضي ومنعها. ولكن هذا الخيار ليس متاحا دائما، لذلك اصطياد استثناء ينبغي تنظيم مباشرة في حال "القسمة على صفر".

آلية جافا لاعتراض خطأ معالجة يشبه هذا:

  • يتم إنشاء الكائن استثناء كومة، وكذلك أي دولة أخرى.
  • المسار الطبيعي للبرنامج هو توقف.
  • آلية الإقصاء تحاول إيجاد وسيلة بديلة لمواصلة المدونه؛
  • العثور على التنفيذ الآمن للبرنامج في المعالج أو العمل أو المستعادة، أو ستحدث تحقيق استثناء بطريقة خاصة.

وأبسط مثال على خلق خطأ قد تبدو مثل هذا:

إذا (فارغة ==)

رمي NullPointerException جديد ()؛

هنا، يتم فحص المتغير لفي التهيئة، أي ليس ما إذا كانت الإشارة إلى كائن فارغ. إذا كان هذا الموقف قد نشأ وتحتاج الى معالجة خاصة، يتم طرح استثناء رمي NullPointerException الجديد ().

تفاصيل قليلة عن الكلمات الرئيسية

عند التعامل مع استثناءات غالبا ما يكون من الضروري استخدام جافا الكلمة للإشارة إلى إجراء معين. هذه لغة البرمجة خمسة وهي:

  • محاولة. وهذه الكلمة اجتمع بالفعل، وهذا يعني الانتقال إلى المقطع من التعليمات البرمجية التي يمكن رمي استثناء. كتلة الأقواس محدودة {}.
  • الصيد. انها تعترض نوع الاستثناء المطلوب والتعامل معها بشكل مناسب.
  • وأخيرا. هذه الكلمة هو اختياري، ويستخدم لأداء قطعة معينة من التعليمات البرمجية، وهو مطلوب على أي حال، حتى لو لم يتم اكتشاف أي استثناء. وأضاف مباشرة بعد كتلة المحاولة.
  • رمي - يتيح لك إنشاء استثناءات جافا من أي مكان.
  • يلقي - وهي الكلمة التي يتم وضعها في توقيع الأسلوب. وهو ما يعني أن التعليمة البرمجية التالية يمكن أن يلقي استثناء من هذا النوع جافا. تعمل هذه علامة كإشارة للمطورين التي تحتاج إلى أن توضع في الاعتبار - طريقة لا يمكن أن تعمل كما هو متوقع منه.

اصطياد مع المحاولة

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

يتم تغليف رمز جاوة في محاولة كتلة الخاصة، ضمن والتي قد تكون استثناء. وهكذا، وقال انه وضعت عدة حالات غير متوقعة من شأنها أن تكون اشتعلت في نفس المكان، ليس رمز raspolzayas.

الرمز الأكثر نموذجية إلى وحدة المعالجة كما يلي:

محاولة {

// هنا بعض التعليمات البرمجية التي قد تولد استثناء

} صيد (identifikator_1 Tip_isklyucheniya_1) {

// هنا وهناك معالجة الاستثناء، وفقا لنوع وشروط؛

} صيد (identifikator_2 Tip_isklyucheniya_2) {

// هنا وهناك معالجة الاستثناء، وفقا لنوع وشروط؛

}

الصيد الكلمة التقارير التي تفيد بأن الرمز، ومسحها ضوئيا لاستثناء، في أن يعامل كما هو موضح أدناه، شريطة أن يتوافق مع نوعه. معرف يمكن استخدامها في معالجة كتلة التعليمات البرمجية كوسائط.

أخيرا

كما اتضح من الفصل السابق، وكتل الصيد الصيد الاستثناءات ومعالجتها. ولكن في كثير من الأحيان تنشأ حالة حيث يجب تشغيل بعض التعليمات البرمجية، بغض النظر عما إذا كانوا اشتعلت الأخطاء. لهذا هناك الكلمة في نهاية المطاف. فهو يستخدم لزيادة قيم مختلفة العدادات، وإغلاق ملفات أو وصلات الشبكة.

تقدم هذه المؤامرة عدة كتل الصيد اخترع أساليب الصيد الاستثناءات. على سبيل المثال، رمز الواردة في محاولة يولد حالة غير متوقعة مثل الباردة. ثم، سوف يتم عرض وحدة التعبير «اشتعلت البارد!» و «هل هذا شيء ليهتف عنه؟». وهذا هو، يتم تنفيذ كتلة وأخيرا في أي حال.

في الواقع، وسيلة لتجنب التسبب في نهاية المطاف هناك. اتصاله مع الانتهاء من الجهاز الظاهري. العثور على كيفية تنفيذ ذلك، فمن الممكن على المساحات المفتوحة الإنترنت.

الكلمة رمي

رمي بإنشاء استثناء. بناء الجملة على النحو التالي:

رمي NewException جديدة ()؛

يتم إنشاء هناك استثناء جديد لنوع من NewException (). كنوع يمكن استخدامها مدرج بالفعل في الطبقات مكتبة جافا القياسية والمحددة مسبقا من قبل المطور من انتاجها الخاص.

هذا التصميم هو جزء من وصف أي طريقة، ثم ينبغي أن يحدث الدعوة داخل كتلة المحاولة، من أجل أن تكون قادرة على اعتراض عليه.

يلقي الكلمة

ماذا لو في عملية التنمية من الحالة التي تكون فيها طريقة يمكن أن يلقي استثناء، ولكنها ليست قادرة على التعامل بشكل صحيح. ولهذه الغاية، في توقيع الأسلوب يحدد كلمة يلقي ونوع من الاستثناءات الممكنة.

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

محاولة الموارد

وشملت مطوري جافا الإصدار 7 أهم الابتكارات، ككتلة العلاج المحاولة مع الموارد.

يتم إنشاء العديد من الكائنات في جافا، بعد وينبغي إغلاق استخدام وصولا الى الحفاظ على الموارد. سابقا كان عليها أن تأخذ ذلك في الحسبان ووقف هذه الحالات يدويا. الآن، إلا أنها ظهرت واجهة AutoClosable. فهو يساعد على إغلاق الأشياء المستخدمة بالفعل وضعت في كتلة المحاولة تلقائيا. من خلال هذا النهج أصبح أكثر ملاءمة لكتابة التعليمات البرمجية في هو زيادة سهولة القراءة بشكل كبير.

الطبقات الخاصة استثناءات جافا

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

إن أبسط طريقة لخلق - وراثة من الأنسب للسياق الكائن.

حدث هناك وراثة من استثناء، والفئة التي يتم استخدامها لتحديد الاستثناءات الخاصة بك. في MyException اثنين من الصانعين - التقصير، والثانية - مع سلسلة سيطة نوع جي اس.

ثم، في طريقة و FullConstructors الفصول الدراسية العام تنفيذها، والذي يحتوي على توقيع يلقي MyException. هذه الكلمة تعني أن f يمكن أن يلقي مثل استثناء جافا MyException. وعلاوة على ذلك، في الجسم طريقة إنتاج الناتج المعلومات النص إلى وحدة التحكم نفسها وMyException الجيل الفعلية، من خلال رمي.

الطريقة الثانية هي مختلفة قليلا عن الأولى أنه عند إنشاء استثناء، يتم تمرير معلمة السلسلة، والذي سوف ينعكس في وحدة التحكم في نظر. في معظم الأحوال من الواضح أن f () و (ز)) توضع (في التدقيق ومحاولة الصيد الكلمة تكوين لالتقاط MyException. نتيجة لتجهيز هو عرض رسالة الخطأ إلى وحدة التحكم:

وهكذا وصل الأمر إلى إضافة استثناءات جافا، قبل يده.

استثناءات العمارة

كما هو الحال مع كل الكائنات في جافا، كما ورث الاستثناءات ويكون لها هيكل هرمي. العنصر الجذر من كافة الأخطاء التي القيت هذه لغة البرمجة هي الدرجة java.lang.Throwable. ورثت منه نوعين - خطأ واستثناء.

خطأ - يشير إلى خطأ فادح وغير استثناءات جافا دون رادع. اعتراض ومعالجة هذه البيانات في معظم الحالات يحدث في مرحلة التصميم وليس في حاجة إلى إدخال في رمز التطبيق النهائي.

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

غالبا ما يكون هناك استثناءات

في استثناءات جافا، يتم تقديم قائمة من أدناه، وتستخدم في معظم الأحيان، لذلك يجب وصف كل منها بالتفصيل:

  • ArithmeticException. وتشمل هذه الأخطاء المرتبطة العمليات الحسابية. المثال الأكثر وضوحا - في القسمة على صفر.
  • ArrayIndexOutOfBoundsException - نداء إلى عدد عنصر صفيف يتجاوز مجموعه طوله.
  • ArrayStoreException - محاولة لتعيين نوع العنصر غير متوافق من مجموعة.
  • ClassCastException - محاولة لجلب خاطئ نوع واحد إلى آخر.
  • IllegalArgumentException - باستخدام حجة خاطئة في استدعاء الأسلوب.
  • NegativeArraySizeException - استثناء عند إنشاء مجموعة من حجم السلبي.
  • NullPointerException - سوء استخدام الإشارات إلى فارغة.
  • NumberFormatException - يحدث عند تحويل سلسلة الخطأ صحيحا.
  • UnsupportedOperationException - لا يتم اعتماد العملية.

وتمثل هذه الأمثلة أنواع استثناءات جافا دون رادع. ولكن حتى تبدو التحقق:

  • ClassNotFoundException - الفئة غير موجود.
  • IllegalAcccessException - تقييد الوصول إلى الفئة.
  • InterruptedException - انقطاع التدفق.
  • NoSuchFieldException - لا توجد حقل مطلوب.

تفسير الاستثناءات

وتحدث الاستثناءات التي غالبا ما تجدر الإشارة إلى أن تفسيرها في التصميم، ويمكن أن ينظر إليها بشكل غير صحيح. هو التالي على قائمة قصيرة موضحا في مزيد من التفاصيل، حيث قد يكون هناك وضع غير متوقع.

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

ArrayIndexOutOfBoundsException. أي برنامج لا يمكن أن توجد من دون استخدام المصفوفات. وعليه، فإن اللجوء المتكرر إلى أنه يمكن أن تولد والخطأ. يحدث استثناء عندما يحاول مطور للوصول إلى عنصر صفيف غير موجود في قائمة المؤشر. على سبيل المثال، فإن القيمة المطلوبة هي أعلى أو أقل من طول الصفر. في كثير من الأحيان هو نتيجة لحقيقة أن في مجموعة تبدأ بنتيجة صفر.

النتائج

التعامل مع استثناءات جافا - بيئة أداة قوية، مما يسهل كثيرا من عمل مبرمج ويسمح له لخلق بيئة نظيفة وخالية من الأخطاء التعليمات البرمجية. على تطبيق سير كيف على نحو سلس ومستقر يعتمد على وضع وسمعة المطور.

وبطبيعة الحال، في أكثر أو أقل برامج بسيطة لتتبع الحالات الشاذة أسهل بكثير. ولكن في المجمعات الآلي كبيرة لبضع مئات الآلاف من خطوط فمن الممكن فقط نتيجة الاختبار على المدى الطويل والتصحيح.

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ar.delachieve.com. Theme powered by WordPress.