Eval() and Debugging

في هذه المدونة نتعرف على كيفية التعامل مع الخطأ حتى قبل حدوثه، وكيفية تنفيذ الكود أثناء التشغيل من داخل السلسة الحرفية(Strings)

أولا:Debugging

1- Try/Catch/Done

في البداية يتم تنفيذ الكود بداخل Try وفي حالة حدوث خطأ أو Errors يتم تنفيذ الكود بداخلCatch.

Try

      في حالة  Statements… True

Catch

    في حالة Statements… False

                                               Done

ملحوظة:

cCatchError عبارة عن متغير معرف داخل اللغة يستخدم للحصول على رسالة الخطأ.

مثال توضيحي لإيجاد مضروب (Factorial) للرقم 5:

(See fact (5

   Func fact x

 (Return x * fact(x-1

الخرج (output):

1.jpg

وفي حالة تنفيذ Try/Catch/Done تظهر فقط رسالة الخطأ دون أن يحدث اغلاق أو مشاكل للبرنامج.

 كما في الشكل التالي:

2.jpg

في المثال السابق حدثStack Overflow  عند الوصول الي رقم 1 والتخطي الي ما بعد هذا الرقم.

ولتفادي هذه المشكلة يتم عمل condition

كما في الكود التالي:

(See fact (5

    Func fact x

If x = 1 return 1

(Else return x * fact(x-1

            OK

2- ()Raise 

تستخدم للحصول علي رسالة الخطأ في الحالات الاستثنائية(Exceptions).

 (Raise (cErrorMessage

مثال توضيحي:

4.jpg

3- ()Assert

لعمل اختبار قبل تنفيذ الكود  – وفي حالة فشل الاختبارتظهر رسالة بالخطأ.

 (Assert (condition

مثال:

x = 10

 (Assert(x = 100

 ثانيا:()Eval

تستخدم لتنفيذ الكود أثناء تشغيل البرنامج من خلال Strings.

(“Eval (” cCode

(‘Eval (‘cCode

(`​Eval (`cCode

مثال توضيحي:

3.jpg

والي لقاء اخر …

الاكواد المستخدمة في الامثلة التوضيحية:

Debugging_Codes

موقع اللغة:

 http://ring-lang.net

 

Advertisements

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s