مزايا استثناءات في جافا لغة برمجة
استثناء هو حدث ، والذي يحدث اثناء تنفيذ البرنامج ، ان يعرقل التدفق العادي للبرنامج وتعليمات. ميزة 1 : - معالجة الخطأ فصل من مدونة "العاديه" مدونةالاستثناءات توفر وسيلة لفصل تفاصيل ما تفعل شيئا عندما اصل العادي يحدث من المنطق الرئيسي للبرنامج. في البرمجه التقليديه ، واكتشاف الخطأ ، والابلاغ ، والتعامل مع كثير من الأحيان يؤدي الى الخلط بين السباغيتي المدونه. على سبيل المثال ، ان تنظر في طريقة pseudocode هنا ان يقرأ كامل الملف الى الذاكرة : (Readfile وللوهله الأولى ، يبدو هذا مهمة بسيطة بما فيه الكفايه ، ولكنه يتجاهل كل الاخطاء المحتملة التالية : • ماذا يحدث اذا كان الملف لا يمكن فتح؟ • ماذا يحدث اذا كان طول ملف لا يمكن تحديده؟ • ماذا يحصل اذا ما يكفي من الذاكرة لا يمكن أن يخصص؟ • ماذا سيحدث اذا لم يقرأ؟ • ماذا يحدث اذا كان الملف لا يمكن ان تكون مغلقة؟ لتناول مثل هذه القضايا ، readfile مهمة يجب ان يكون اكثر المدونه الى الانضمام اكتشاف الخطأ ، والابلاغ ، والمناوله. هنا مثال على ما وظيفة قد تبدو كمن : Errorcodetype (readfile فتح ملف ؛ هناك الكثير من اكتشاف الخطأ والابلاغ عنها ، والعودة هنا الى ان الاصل سبعة خطوط من مدونة تضيع في فوضى. والاسوأ من ذلك ، تدفق المنطقي للقانون وتم ايضا فقدت ، مما يجعل من الصعب معرفة ما اذا كان هذا القانون يقوم بالعمل الصحيح وهو : هل حقا ان يجري اغلاق الملف اذا كانت المهمة لا تخصص ما يكفي من الذاكرة؟ انه حتى اكثر صعوبة لضمان ان المدونه لا تزال تفعل الشيء الصحيح عندما كنت في تعديل طريقة بعد ثلاثة أشهر من كتابة هذا التقرير. العديد من المبرمجين حل هذه المشكلة ببساطة تجاهل iterrors أفيد عندما تحطم برامجه. الاستثناءات يمكن ان اكتب اليكم الرئيسية تدفق شفرتك والتعامل مع الحالات الاستثناءيه في اماكن اخرى. اذا readfile استثناءات مهمة تستخدم بدلا من التقليديه دون خطأ تقنيات الإدارة ، انها ستنظر اشبه ما يلي : (Readfile علما ان الاستثناءات لا تدخر جهدا اليكم من القيام بأعمال الكشف والابلاغ عنها ، ومعالجة الاخطاء ، لكنها تساعدك على تنظيم العمل على نحو اكثر فعالية. الميزه 2 : المكاثره أخطاء تصل الدعوة إلى كومةميزة ثانية من الاستثناءات هو القدرة على نشر خطأ في الابلاغ حتى الدعوة الى كومة من الاساليب. لنفترض ان readfile الاسلوب هو الاسلوب الرابع في سلسلة من متداخل طريقة النداءات التي وجهها البرنامج الرئيسي : method1 يدعو method2 ، الذي يدعو الى method3 ، التي تدعو الى readfile أخيرا : Method1 ( Method2 ( Method3 ( لنفترض أيضا ان method1 هو الطريقة الوحيدة المهتمه في الاخطاء التي قد تحدث داخل readfile. خطا الاخطار التقليديه تقنيات قوة method2 method3 ونشر مدونات خطأ عاد بها readfile تصل الدعوة إلى كومة حتى الخطأ المدونات وأخيرا توصل method1the الطريقة الوحيدة التي تهتم بها : Method1 ( Errorcodetype method2 ( Errorcodetype method3 ( يذكر ان وقت التشغيل جافا البيئة التفتيش الى الوراء من خلال الدعوة الى كومة من العثور على اي الاساليب التي هي مهتمة في التعامل مع استثناء معين. طريقة يمكن بطه اي استثناءات القيت في داخلها ، الامر الذي يتيح طريقه الى مدى أبعد تصل الدعوة إلى كومة الصيد. ومن هنا ، الا ان اساليب الرعايه عن اخطاء قد وان تقلق على اكتشاف الاخطاء : Method1 ( Method2 رميات استثناء ( Method3 رميات استثناء ( ولكن ، وكما تبين pseudocode ، الغطس استثناء يتطلب بعض الجهد من جانب الوسيط طرق. اي التحقق من الاستثناءات التي يمكن ان يلقى بهم في اطار اسلوب يجب ان تحدد في دورتها رميات شرط. الميزه 3 : التجميع والتفريق بين أنواع الخطألأن جميع الاستثناءات التي القيت في اطار البرنامج هي الأشياء ، التجمع او تصنيف الاستثناءات هو نتيجة طبيعية للالطبقة التسلسل الهرمي. مثال على مجموعة من الطبقات ذات الصلة استثناء في جاوة منهاج هي تلك التي تم تحديدها في java.ioioexception وأحفاد. Ioexception هو الاكثر العام ويمثل اي نوع من الاخطاء التي يمكن ان تحدث عند المنفذ الاول / O. احفاد دورتها تمثل اكثر تحديدا الاخطاء. على سبيل المثال ، filenotfoundexception يعني ان الملف لا يمكن الموجودة على القرص. طريقة الكتابة محددة يمكن ان عمال يمكنهم التعامل مع استثناء محدد جدا. فان filenotfoundexception الطبقة ليس له ذرية ، بحيث التالية المعالج يمكنه معالجة نوع واحد من الاستثناء : الصيد (filenotfoundexception ه) ( طريقة الصيد يمكن استثناء ، استنادا الى مجموعة أو العام عن طريق تحديد اي نوع من الاستثناء 'ssuperclasses الصيد في البيان. على سبيل المثال ، الى التقاط كل الاول / س الاستثناءات ، بغض النظر عن نوع محدد ، باستثناء المعالج يحدد اي ioexception الحجه : الصيد (ioexception ه) ( هذا المعالج سيكون قادرا على التقاط كل الاول / س الاستثناءات ، بما filenotfoundexception ، eofexception ، وهلم جرا. يمكنك العثور على تفاصيل عن ما حدث من قبل سؤال الحجه التي مرت على استثناء المعالج. على سبيل المثال ، استخدام التالي لطباعة كومة تعقب : الصيد (ioexception ه) ( حتى انك تستطيع انشاء استثناء المعالج ان يعالج اي استثناء مع المعالج هنا : الصيد (باستثناء ه) (/ / أ (ايضا) العام باستثناء المعالج باستثناء الطبقة القريبه من اعلى من الدرجة throwable التسلسل الهرمي. ولذلك ، فإن هذا المعالج سوف الصيد اخرى كثيرة الاستثناءات ، بالإضافة الى تلك التي المعالج يقصد الصيد. قد تريد معالجة الاستثناءات وبهذه الطريقة اذا اردت ان جميع الخاصة بك البرنامج الى القيام ، على سبيل المثال ، هو طباعة رسالة خطأ للمستخدم وثم الخروج. وفي معظم الحالات ، ولكن أردت أن يكون استثناء عمال الى اقصى قدر ممكن من التحديد. والسبب هو ان اول شيء أ المعالج يجب القيام به هو تحديد نوع الاستثناء حدثت قبل ان يصبح من الممكن اتخاذ قرار بشأن أفضل استراتيجية الانعاش. في الواقع ، ليس من جانب صيد اخطاء محددة ، والمعالج يجب ان تستوعب اي احتمال. ان استثناء عمال عامة للغاية يمكن أن يجعل القانون اكثر عرضة للخطأ من قبل المسك ومعالجة الاستثناءات التي لم تكن متوقعة من قبل المبرمج والتي لا يقصد المعالج. وكما لوحظ ، يمكنك انشاء مجموعات من الاستثناءات ، والاستثناءات في التعامل بشكل عام ، او يمكنك استخدام نوع محدد باستثناء التفريق الاستثناءات ومعالجة الاستثناءات في الدقيقة الموضه. هذا هو مقال اضافها كلين العلامه التجارية
|
|||
|