الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أتجنب حدوث ال Exception ؟

مغلق
بدأه ya3mro في 9 نوفمبر 2005 · 6 رد · 618 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أحبتي اخواني

كل واحد فينا بيعمل برامج ومنها خاصة ومنها لشركات او مقابل مادي

لكن المشكلة الهامه جد اللي المفرووووووض الكل يتنبه ليها وهي :

ان البرنامج ده ممع احتراف من برمجه ممكن يطلع ايرورز او unhandled ExCeptions لليوزر وفي الحالة دي البرنامج بتاعك قد يغلق او يودي عملية حطا ؟

فكيف السبيل الي جعل البرنامج محمي من كل الجوانب اي في حالة اي خطأ انا كمبرمج معملتش حسابه يتصرف البرنامج تصرف صحيح

-------------------------------------------------------

دي المشكلة ...

وحاولت انا وابراهيم زميلي نلاقي ليها حل

وفكرتا في كذا فكرة وفي فكرة حاليا شغاليين بيها

فياريت لو حد عنده اي فكرة او طريقه بيستخدمها فعلا يوقل عليها مهما كانت الفكرة صغيرة

احنا كلنا عاوزيين نناقش الموضوع ده بتوسع ونطلع في الاخر بحل يخدم الجميع

#2

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

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

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

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#3

الExceptions لها عدة أنواع

النوع الأول و هو النوع الذي يسببه مؤثر خارجي

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

تحدث غالباً في أثناء التعامل مع Resource خارجي مثل ال Databases و الNetworks و ال Internet و ال Web Services و الFiles و ............ الخ و بالنسبة لهذا النوع من الExceptions يكفي فقط أن تضع الجزء الذي يتعامل مع الResource في try-catch أو try-catch-finally أو try-finally لتجنب مشاكلها

المصادر الأخرى للExceptions تاتي في استخدام عمليات تحويل بين متغيرات ناجحة نظريا و لكن تفشل في أحيان خاصة مثل التحويل من String الى Integer باستخدام int.Parse فلو كان الstring لا يمثل أرقام سيحدث Exception و حل هذا النوع المشاكل مشابه لحل النوع السابق باستخدام try-catch أيضاً ...

النوع الثاني و هو النوع الناتج عن خطأ المبرمج

مثل استخدام متغيرات بدون وضع قيمة ابتدائية لها و هو ما يسمى NullReferenceException و هذا حله أن تقوم بعمب initialization لهذا الobject ...

و أيضاً اجراء عمليات casting غير صحيحة ال InvalidCastException

و أيضاً اجراء عمليات على الArrays دون الانتباه الى حجم الarray مما ينتج أحيانا IndexOutOfRangeException

و حلول هذه المشاكل ليس try-catch بل هو تصحيح الخطأ البرمجي لأنك لو استخدمت try-catch فلن تحدث المشكلة و لكن لن يعمل البرنامج أبداً و سيفشل كل مرة دون ان يخبرك بسبب فشله

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#5

وعليكم السلام ورحمة الله وبركاته.

نرجوا أن تضع عنوان جيدا للمواضيع في المرات القادمه تدل على محتواها .. فكان عنوان "هااااااام لكل من يبرمج برنامج كبير ؟؟" لا يدل على محتوى هذا الموضوع ولا يعبر على سؤالك.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#6

جزاكم الله كل خير يا شباب

ولكن لم تصلوا الي ما اريد الحضول عليه ؟؟

انا اقصد مثلا علي سبيل المثال ان اي دالة هامه اعمل فيها Try Catch اي دالة بحيث لو فيه اي ايرور حصل فجأة يكون فيه هاندل ليها فهل عمل هذه الطريقة في كل دالة يعمل حمل في البرنامج ولا مش فارقة

لاني اري بالفعل انهم هااااااااااااااااااام جدا لانك لما تنزل اي برنامج بالسوق او لاي شركة واذا مكنش في دراسة وافية واستعداد لاي ايرور البرنامج بتاعك هيسوء في نظر المستخدم بنسبة 40% فارجوا الانتباه لذلك

أرجو الانتباه أثناء مخاطبة المشرفين و خاصةً عندما تكون مخطئاً فلا يوجد أدنى مبرر لاعتراضك

تم تعديل هذه المشاركة بواسطة bashmohandes في 9 نوفمبر 2005 في 12:14

#7

غير منطقي أن تضع Try-Catch حول كل Function أو تضع البرنامج ككل في Try-Catch فالException Handling يبطئ سرعة البرنامج بشكل ملحوظ يجب أن تتوقع أماكن حدوث الأخطاء و تحاول تجنبها أولاً ثم اذا كان الخطأ من النوع الذي لا يمكن تجنب حدوثه أحيانا استخدم Try-Catch

Sr. Software Development Engineer
Hulu, LLC
My Blogs

هذا الموضوع مغلق.

مواضيع مشابهة