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

ممكن احديشرح لي التالي

مغلق
بدأه Zouhere Gerard في 21 يوليو 2005 · 3 رد · 548 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أرجو من أحد المحترفين أن يشرح تعليمات try و except بمثال بسيط اذا امكن

وشكرا

#2
with Query1 Do
begin
 Close;
SQL . Clear;
SQL . Add('insert Into Stock temDesc,ItemQty,ItemCost,ItemLoc,Reorder,HighLevel,LowLevel) Values('+QuotedStr(Edit1 . Text)+','+QuotedStr(Edit2 . Text));
SQL . Add(',0,0,'+QuotedStr(Edit3 . Text)+','+Edit4 . Text +','+Edit5 . Text);
SQL . Add(','+Edit6 . Text+')');
Try ExecSQL;
Except On EdbEngineError Do
Begin
ShowMessage('فشل عملية التخزين لوجود تكرار');
end;

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

وهذا احد مميزات هذه try وهي تقوم بتعرض رسالة الخطأ الناتجة عن البرنامج

ارجو ان يكون شرحي مفهوم

والله اعلم

وسوف اقوم بأرفاق المثال فيما بعد

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

وتعاونوا على البر والتقوى ولا تعاونوا على الإثم والعدوان

.............................................................................................................................

لنبدا دورة دلفي

سلسلة تعلم برمجة Pascal , تعلم اساسيات الباسكال

التحكم بمنفذ الطابعة عن طريق الدلفي

سلسلة دروس تعلم قواعد بيانات Midas

هيا لنبدأ بالApi

أفكار سريعة, مجموعة شفرات صغيرة وفاعله لدلفي

كتب + مواقع ::: مراجع مهمة للغة دلفي, مجموعة كتب مجانية + مواقع مفيدة

مكتبه الأكواد, أكواد وبرامج دلفي

.............................................................................................................................

18_07_05_10_53_18_1121752398da3wa_18.gif

#3
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:real;
begin

a:=0;

try
c:=  b/a;
caption := floattostr(c);
except
ShowMessage('Error');
end;

end;

كما تلاحظ القسمه على صفر ستسبب خطأ .

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

ستجد أن البرنامج النهائي (exe) يتجاوب مع الخطأ بطريقتنا الخاصة , ويظهر رسالتنا نحن بدلا من رسالة النظام

كذلك يوجد try finally ,

والفرق أن

except : تتنفذ فقط عند حدوث خطأ

finally : تتنفذ مهما حدث حتى لو حدث خطأ . أي أنه في بعض الحالات عند حدوث خطأ ما يتم مقاطعة تنفيذ البرنامج من نقطة الخطأ , مما يسبب بعض المشاكل , مثلا عدم تحرير الذاكرة التي قمنا بحجزها , ولكن إذا استخدمنا try finally فإننا نضمن أن الذاكرة سيتم تحريرها حتى لو حدث أخطاء في تنفيذ بلوك برمجي ما

يمكن استخدام كذلك عبارة مركبه منهما :

try
try
except
end;
finally
end;

من فوائد try كذلك هي إلغاء بعض رسائل الخطأ التي لابد منها , وذلك بوضع except end من دون وضع أي شفره بينهما ,

مثلا لو وضعنا الشفرة السابقة من دون try بالشكل :

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:real;
begin
a:=0;
c:=  b/a;
caption := floattostr(c);
end;

نلاحظ ظهور رسالة الخطأ الأجنبية حتى بالملف التنفيذي النهائي

ولكن لو وضعنا try و except end من دون وضع أي رسالة خطأ , عندها لن تظهر رسالة الخطا .. ويجب استخدام هذه التقنية بحكمه

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:real;
begin
a:=0;
try
c:=  b/a;
caption := floattostr(c);
except
end;
end;

تم تعديل هذه المشاركة بواسطة ORWA في 21 يوليو 2005 في 14:29

#4

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

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

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