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

كيفية عمل Exception مقصود

مغلق
بدأه conan في 13 فبراير 2005 · 6 رد · 806 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

أخواني أريد أن اسألكم

كيف يمكنني أن أعمل Exception مقصود

بمعنى:

عندي هذا ال procedure

private void show_formb()
{
try
{
save();
int cc=0;
...
some other code
...
}
catch(Exception ex)
{
}
}

أريد من ال procedure save اذا نجح في عملية حفظ البيانات ان يكمل عادي

واذا فشل في عملية الحفظ يعود الى show_formb

ب exception

امسكه في الcatch

فكيف ذلك؟

السؤال بصيغة أخرى هو كيف أعمل Exception تبعا لبعض ال conditions عندي؟

وجزاكم الله خيرا

#2

يمكنك استخدام If..Then...Else للشرط..

يعني لو كانت ()Save تفتح SaveDialog ، فضعها داخل الشرط..

رأس الحكمة الإيمان بالله

#3

جزاك الله خيرا يا أخي

لكني أريد ان أكمل التنفيذ الكود اللي بعد save() فقط اذا انتهت save() بنجاح

أما اذا لم تنتهي بنجاح ، فأريد ان لا يتم تنفيذ الكود ويتم الذهاب مباشرة الى ال catch

#4

لا أدري كيف تستطيع معرفة ان كانت save قد نفذت بنجاح فهذا يعتمد على بنية save.

لكنني سافترض انها تعيد true في حالة النجاح و false في حالة الفشل.

فانك تستطيع استخدم

if (Sav())
   throw new Exception("Chages couldn't be saved!");

من ناحية افضل ان تستخدم return او جملة شرطية كما قال محمد فهذه الطريقة اسرع من ال Exception

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

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

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#5

هذا هو بالفعل ما احتاجه

شكرا لكما أخويا العزيزين

هل ممكن المزيد عن

 throw new Exception("Chages couldn't be saved!");

أو بعض الروابط لمواضيع تشرحها؟

بارك الله فيكم

تم تعديل هذه المشاركة بواسطة conan في 13 فبراير 2005 في 17:45

#6

طبعا الإخوة تفضلو بالحلول و لكن ردا على طلبك بخصوص إستخدام ال Error Exception

أنت الان تقوم بالتحقق بداخل الإجرائية فلم تعود لها ؟ بطبيعة الحال سوف تقوم تعليمة Try بالمحاولة في تنفيذ التعليمات حتى وقت معين بعدها سوف تدخلك لل Catch statment وبالتالي و من المنطق أنه لن يتم الدخول لحالات الاستثناء إلا إذا فقد التطبيق الأمل في تنفيذ طلبك كربط مع قواعد البيانات و فتح الاتصال إن كان ما زال مغلقا و قد وصل لل Max Size الخاص بال Connection Pool او غيرها من المحاولات.

مثلما نصحك الأخوة قم بعمل إجرائية تستخدم ال Return لإرجاع حالة معينة من أي نوع بيانات Data Types تختارها و بالعادة يستخدم bool

int a;
int b = 0; <---انتبه أن المتغير هنا قيمته البدائية صفر وبالتالي سينتج خطأ من ناتج القسمة اي
//Divide by zero error coz u can't get any integer over "/" zero 
try
{
   a = 10 / b;
}
catch ( InvalidOperationException e )
{
  Response.Write( e );
}
catch ( DivideByZeroException e)
{
   Response.Write( e );
}
finally
{
   Response.Write ( "تم تنفيذ هذه الجملة بالإضافة للجملة المحتوية للخطأ على حسب ظهوره" ); 
}

هنا بالمثال المتغير B عبارة عن صفر و المتغير A سوف تأخذ القيمة 10 و بالتالي عند قسمة العشرة على الصفر ماذا سينتج ؟

Division by zero error

طبعا ما رح اقدر اتابع اليوم معكم بالمنتدى لانو غدا عندي اخر امتحان في حياتي الجامعية "ذكاء إصطناعي" :s إدعولي بس اليوم وبعدها عودة للمنتدى بعقل فريش :D

تم تعديل هذه المشاركة بواسطة محمد خليل أبو صلاح في 13 فبراير 2005 في 18:17

You can fly while you can touch the sky

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

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