عندما يتعلق الأمر بحساب التعبيرات الرياضية ، فإن الأشخاص المختلفين لديهم مقارباتهم المختلفة. يستخدم البعض طريقة تحليل التعبيرات. إذا كان هناك خطأ في التعبير ، يمكن أيضًا أن يطفو على مربع الحوار للإشارة إلى الخطأ المقابل. يستخدم هذا البرنامج عبارات SQL القياسية ، والتي تدعم العديد من العمليات ، مثل الإضافة ، والضرب ، والتقسيم ، والتقسيم ؛ هناك أيضًا عمليات سلسلة ، لكن هذا لا معنى له. نظرًا لأن هذا البرنامج يتوافق مع الغرض المذكور أعلاه ، لا توجد قيود على ذلك ، يمكن للأصدقاء المهتمين التحقق من بناء جملة التعبير مقدمًا ثم تسليمه إلى هذا البرنامج للحساب.
{
جميع الحقوق محفوظة.
المشروع: حساب التعبيرات الرياضية
المؤلف: huang tao [email protected]
الغرض: تعلم كيفية استخدام فصول الاستثناء
}
وحدة UCALCEXPR ؛
واجهة
يستخدم
Windows ، الرسائل ، sysutils ، المتغيرات ، الفئات ، الرسومات ، عناصر التحكم ، النماذج ،
مربعات الحوار ، stdctrls ، db ، adodb ؛
يكتب
tfrmcalc = فئة (tform)
Button1: Tbutton ؛
EDIT1: TEDIT ؛
الإجراءات button1click (المرسل: tobject) ؛
الإجراء edit1keypress (المرسل: TOBJECT ؛ VAR KEY: char) ؛
خاص
{إعلانات خاصة}
عام
{الإعلانات العامة}
نهاية؛
وظيفة calcexpr (expr: string): string ؛
var
frmcalc: tfrmcalc ؛
تطبيق
{$ r *.dfm}
// هذا هو جوهر هذا البرنامج ، ويعتمد عليه لحساب التعبيرات.
وظيفة calcexpr (expr: سلسلة): سلسلة ؛
استعلام var: tadodataset ؛
يبدأ
QURY: = tadodataset.create (NIL) ؛
يحاول
QURY.ConnectionString: = "Provider = MSDASQL.1 ؛ استمر في معلومات الأمان = FALSE ؛"
"مصدر البيانات = ملفات DBASE" ؛
QURY.CommandText: = "حدد" + expr + "كنتيجة" ؛
QURY.OPEN ؛
النتيجة: = expr + '=' + qury.fieldbyname ('result'). assstring ؛
أخيراً
Query.free ؛
نهاية؛
نهاية؛
الإجراء tfrmcalc.button1click (المرسل: tobject) ؛
يبدأ
يحاول
edit1.text: = calcexpr (edit1.text) ؛
يستثني
على H: استثناء تبدأ
ShowMessage (H.Message) ؛
نهاية؛
نهاية؛
نهاية؛
الإجراء tfrmcalc.edit1keypress (المرسل: tobject ؛ var مفتاح: char) ؛
يبدأ
إذا كان المفتاح = #13 ثم button1click (self) ؛
نهاية؛
نهاية.
ملخص: من هذا يمكننا أن نرى أن هناك طريقتين لالتقاط استثناءات. تختلف هاتين الطريقتين لالتقاط الاستثناءات ، وكل منهما له استخداماته الخاصة.
حاول ... باستثناء ... يتم استخدام النهاية بشكل عام عندما نحتاج إلى التقاط الخطأ وإجراء المطالبات المقابلة بعد استدعاء طريقة معينة. على سبيل المثال ، عند استدعاء وظيفة تقوم بحساب تعبير في البرنامج أعلاه ، من المحتمل أن تقوم الوظيفة التي تحسب تعبيرًا بإلقاء استثناء ، لذلك عند الاتصال ، يجب أن تلتقط استثناءها ، أو إجراء مطالبات مماثلة ، أو تنفيذ المعالجة اللاحقة ذات الصلة لتجنب يسبب أخطاء النظام ويؤثر على جمال واجهة البرنامج. إذا قمنا ببساطة بالإبلاغ عن خطأ ، فيمكننا ببساطة كتابة المطالبة المقابلة للإبلاغ عن خطأ في منتصف ... النهاية. إذا كنت ترغب في معرفة نوع الخطأ ، فيجب عليك اتباع الممارسة أعلاه لالتقاط الخطأ.
جرب ... يتم استخدامه بشكل عام لإجراء العمليات ذات الصلة بعد تخصيص مورد معين. مع المحاولة ... أخيرًا ... يمكننا وضع بيان التشغيل تمامًا في المحاولة ... أخيرًا بعد تخصيص الموارد ، وتخيل أنه يمكن تنفيذ ذلك بسلاسة تمامًا. من هذه الدائرة وأدخل أخيرًا دون تنفيذها بالتسلسل. في النهاية ... في النهاية ، يمكننا تنفيذ بعض الأعمال التي أعقبت ، مثل إصدار الموارد المخصصة في ذلك الوقت ، لأنه بغض النظر عما إذا كان يتم تنفيذ ما سبق بسلاسة أو عند مواجهة الاستثناءات ، سيتم تنفيذ البيانات هنا.
يمكن ملاحظة أن البيان أعلاه قد تم تعيينه للقبض على الاستثناءات ، ويتم تعيين البيان التالي لتخصيص الموارد ، لكن بعض الأصدقاء يقولون ، ماذا يجب أن نفعل إذا أردنا استثناء الاستثناءات واسترداد الموارد؟ لسوء الحظ ، لا يحاول Borland ... باستثناء ... أخيرًا ...
باختصار ، يمكن للاستخدام العقلاني لفصول الاستثناءات أن يقلل بشكل كبير من برامجنا ويجعل أفكار برنامجنا أكثر وضوحًا. البرنامج المكتوب أجمل.