تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] اصطياد رسالة الخطأ دون يتوقف البرنامج
#1
Exclamation 
سلام إحواني

جئت بسؤال آخر  Big Grin

الكود يحتوي على تلات أسطر
السطر الأول خطأ
التاني و التالت صحيح

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

الرد }}}
تم الشكر بواسطة:
#2
الفكرة التى تريد ان تصل لها لم تصل لى حتى الان
حتى اتمكن ان افيدك بالطريقة المناسبة لما تريد فعله

فاتمنا لو تقوم بالتوضيح اكثر

تذكر ان نتائح الرسائل الثلاثة عبارة عن

hh2 || 3  || 4

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: الكاتب , sniperjawadino , baha
#3
مرحبا أخي elgokr 

نتيجة السطر الأول هي خطأ برمجي
La conversion de la chaîne "hh" en type 'Double' n'est pas valide.

أريد من البرنامج أن يضهر لي الخطأ ثم يكمل النتائج الأخرى
الرد }}}
تم الشكر بواسطة: elgokr
#4
(21-02-19, 03:00 PM)sniperjawadino كتب : مرحبا أخي elgokr 

نتيجة السطر الأول هي خطأ برمجي
La conversion de la chaîne "hh" en type 'Double' n'est pas valide.

أريد من البرنامج أن يضهر لي الخطأ ثم يكمل النتائج الأخرى

جميل هنا تكون الصورة واضحة لما تقصده
فى البداية انت هنا يتقوم بالغاء كود Try


ليصبح الحدث يحتوى على التالى
كود :
       MsgBox("hh" + 2)
       MsgBox(1 + 2)
       MsgBox(2 + 2)


الان لدينا خطاء فى الرسالة الاولى بسبب جمع رقم مع نص


ولتجنب الامر فالك التالى اذا كان الامر من الجمع ثابت غير متغير فيمكنك جعل جود الحدث بهذا الشكل

كود :
       On Error GoTo VNext
       MsgBox("hh" + 2)
VNext:
       MsgBox(1 + 2)
       MsgBox(2 + 2)


طيب الكود غير ثابت ولست تعلم اذا كان اذا كان الخطاء يظهر بالرسالة الاولى او الثانية او اذا كانت فى الاخيرة


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

كود :
       On Error Resume Next
       MsgBox("hh" + 2)
       MsgBox(1 + 2)
       MsgBox(2 + 2)


وبكده تكون تجنبت جميع الاخطاء التى قد تظهر ...

طيب ماذا تعنى الكود الاول
الكود الاول بيقول اذا كان يوجد خطاء فى اى سطر من الكود ابداء بالذهاب الى سطر التى يحتوى على كلمة VNext

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

طيب الكود الثاني ماذا يعنى
الكود الثاني هو نفس الكود الاول ولكن فكرته بسيطة وهى
عند وجود خطاء عند سطر محدد تخطي السطر واذهب للسطر التالى
والسطر هنا تعنى بداية فتحة الكود الى نهايته مثل For وخلافه التى تعتمد لعى اكثر من سطر

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

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#5
السلام عليكم



الفكرة واضحة أخي elgokr

وكل شيئ أصبح واضح فعلا

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


فقط يبقى السؤال الأساسي هو هل ممكن البرنامج أن يضهر لي الخطأ ثم يكمل النتائج الأخرى

فهذه إصطياد الخطأ دون توقف مهمة البرنامج
الرد }}}
تم الشكر بواسطة: elgokr
#6
وعليكم السلام ورحمة الله وبركاته

بخصوص
إقتباس :هل ممكن البرنامج أن يضهر لي الخطأ ثم يكمل النتائج الأخرى

نعم يمكنك ذلك كل الامر انك تجعل كود الحدث على هذا الشكل دون استخدام Try
كود :
       On Error GoTo ErrorMessage
       MsgBox("hh" + 2)
       MsgBox(1 + 2)

       Exit Sub
ErrorMessage:
       MsgBox(Err.GetException().Message) ' ضع ما تشاء من الرسالة هنا
       Resume Next

ولاحظ جيداً وجود 
كود :
       Exit Sub

اعلى سطر 
كود :
ErrorMessage:

فهو الزامى جداً
بحيث الفكرة انا بقول فى حالة وجود خطاء اذهب الى السطر تحت مسمى [اى كان الاسم]
وخلال هذا السطر يقوم باظهار رسالة طبقاً لما تريد من ثم يعيد متابعة الامر لما بعد الخطاء اى السطر التالي للامر

وطبعاً من غير وجود 
كود :
       Exit Sub

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

بكده تكون فعلت ما تريد تماماً وكما هو مطرح فى السؤال

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#7
حقا هذا ما أبحث عنه
نجحت الفكرة
وضع تقييم لمساعدتك هو أقل شكر لك
جزاك الله كل خير
الرد }}}
#8
الشكر لله والحمد لله
والحمد لله على كل حال

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  لماذا البرنامج يتوقف بدل عرض رسالة الخطأ justforit 0 102 07-12-25, 10:22 AM
آخر رد: justforit
  كيف نعالج هذا الخطأ - FormatException justforit 4 288 25-10-25, 06:46 AM
آخر رد: justforit
  اين الخطأ فى هذا السطر _ جزاكم الله كل خير abo ragab 2 654 10-08-25, 03:53 AM
آخر رد: abo ragab
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,004 06-08-25, 06:34 PM
آخر رد: Taha Okla
  [VB.NET] أين الخطأ فى هذا السطر وجزاكم الله خيرا abo ragab 2 685 10-07-25, 09:35 PM
آخر رد: abo ragab
  ما هو الخطأ فى هذا الكود خالد كامل1 10 1,163 28-05-25, 09:16 PM
آخر رد: خالد كامل1
  سبب تكرار رسالة التنبيه مصمم هاوي 4 431 03-05-25, 02:05 PM
آخر رد: مصمم هاوي
  ارسال رسالة الى تطبيق واتساب nabil.1710 6 3,691 26-04-25, 11:21 AM
آخر رد: hamedi2727
  [سؤال] كارثة بكل المقاييس: رسالة Out Of Memory dr.programming 5 415 26-04-25, 01:37 AM
آخر رد: princelovelorn
  [سؤال] تغيير الفورم الرئيسي عند تشغيل البرنامج في Visual Studio مع .NET 8؟ silverlord 2 654 09-03-25, 03:52 AM
آخر رد: silverlord

التنقل السريع :


يقوم بقرائة الموضوع: