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

Break on all Errors !

بدأه MMA_EG_Cairo في 29 فبراير 2012 · 23 رد · 780 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذه الإمكانية تجعلني أتمكن من رؤية كافة الأخطاء الموجودة بالكود الخاص بيا سواء كنت أستخدم إستثناء محدد أو لا !!!

On Error Resoume Next

On Error Go To 1

Try

أياً كانت الطريقة المستخدمة ، أرجو رؤية كافة الأخطاء الموجودة بالكود البرمجي !!!

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#2

أرجو المساعدة !!!

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#3

استخدم Try من غير ما تحدد الاكسبشن يعنى بالشكل ده

Try




Catch
   	Throw
End Try

أقلب الغريب كقلب أخيك ؟! أعيناه تشبه عينا أخيك ؟؟!! fb.pngtwitter.png

#5

هي هي نفس المشكلة ... مفيش فرق !!!

بإختصار شديد ، أنا قمت بعمل :

Try
  FileSystem.FileOpen(1, "C:\Data.txt", OpenMode.Input)
  FileSystem.FileClose(1)
Catch
    MsgBox("Error")
End Try

مع العلم أن مسار الملف C:\Data.txt غير موجود أساساً ... فمن الطبيعي أن يتم عرض الرسالة "Error" للمستخدم !!!

كل أللي عاوزة يتعمل ، أن يتم تجاهل الـ Try كأنه لم يكن موجوداً ، ويقف علي مكان الخطأ تماماً :

  FileSystem.FileOpen(1, "C:\Data.txt", OpenMode.Input)

لكن حينما يتحول الوضع الي ملف تنفذي نهائي EXE يام تجاهلة ... مثل فيجوال بيزيك 6.0 ... أنظروا الصورة التالية :

post-126779-052825900 1330624453_thumb.p

المرفقات
Error1.PNG

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#6

أريد بالضبط يكون بهذا الشكل ولكن أثناء التصميم فقط لا غير ... أما أثناء تنفيذ البرنامج وتحويلة الي EXE لا يقم بفعل هذه الفكرة !!!

أنظر الصورة التالية :

post-126779-000130600 1330625001_thumb.p

المرفقات
Error.PNG

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#7

133062637961.jpg

تقصد هذا تمام

1330626955921.jpg

تم تعديل هذه المشاركة بواسطة madapop في 1 مارس 2012 في 21:37

مبرمج نظم معلومات

#8

بالضبط ... ولكن دون أن أفعل Toggle Breakpoin !!!

ويتم عرض الخطأ أثناء وضع الخطأ في منتصف الإستثناء

Try

Resume Next

Go To

!!!!

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#9

هذا هو الحل

1330634277471.jpg

مبرمج نظم معلومات

#10

طيب بلاش دية سؤال آخر بطريقة أخري !!!

هناك طريقة بالفيجوال بيزيك تدعي LogMode ... فحينما يكون البرنامج أثناء الـ Design يعرض القيمة (0)

وحينما يكون البرنامج في وضع ملف تنفيذي EXE يعرض القيمة (1) ... هل لديك الحل ؟؟؟

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#12
madapop كتب:

جرب كتابة الكود http://im21.gulfup.com/2012-03-01/1330634277471.jpg

فعلا الكود كما طلبت

حبيب قلبي ... أنظر الي الصورة التالية :

post-126779-015368000 1330637898_thumb.p

لا أريد أن تعرض هذه الشاشة بعد تحويل سورس كود البرنامج الي ملف تنفيذي EXE !!!

المرفقات
Error.PNG

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#13

ممك ارفاق مثال للتعديل عليه

مبرمج نظم معلومات

#14

الموضوع مش محتاج مثال !!! كل الحكاية أني عاوز الأخطاء كلها تبانلي أثناء تصميم البرنامج ... علشان أقدر أعالج أي خطأ فوراً دون مشاكل ... لكن لما أحول البرنامج الي ملف تنفيذي EXE كي أرسلة للمستخدم لا يعرض ليا أي رسالة خطأ !!!

هي دي الفكرة مش أكثر !!!

فحينما كنت أتعامل مع فيجوال بيزيك 6.0 كان كل حاجة مفتوحة ليا (كل الأخطاء) ... كنت بكتب جملة مثلاً

On Error Resume Next

كأني مكتبتهاش وأي غلطة تبان ليا علي طول وموقعها علي الفور !!!

لكن لما أحول البرنامج الي ملف تنفيذي EXE يختفي كل الأخطاء لأني مجهزها من بدايتها !!!

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#15

قصدى على ممكن ارفاق مثال للتعديل عليه

للسؤال الثانى logmode

مبرمج نظم معلومات

#16

فاهم قصد حضرتك

If Dir("C:\Data.txt") = "" Then

MsgBox("Error")

Else

FileSystem.FileOpen(1, "C:\Data.txt", OpenMode.Input)

FileSystem.FileClose(1)

End If

هذا الكود If Dir("C:\Data.txt") = "" Then

للتاكد من ان الملف موجود او غيرموجود اولآ

لو وضعنا الكود

FileSystem.FileOpen(1, "C:\Data.txt", OpenMode.Input)

FileSystem.FileClose(1)

تأتى رسالة الخطأ 1330626955921.jpg

فيقوم المبرمج بمنعها بتأكيد وجود الملف من عدمه بالكود

If Dir("C:\Data.txt") = "" Then

MsgBox("Error")

بيئة vb6

تختلف عن #vb.net or C

تم تعديل هذه المشاركة بواسطة madapop في 2 مارس 2012 في 01:03

مبرمج نظم معلومات

#17

أخي العزيز

Try - catch وضعت كـ Trap للأخطاء ، أعتقد أن Break on all errors افتراضية ، بمعنى آخر ، لا تستخدم tray catch إلا بعد أن تتأكد من عدم وجود أخطاء ببرنامج ، وعند الانتهاء ضع try catch للكود الذي سستوقع أنه قد يتسبب بمشكلة بعد تحويل المشروع لتطبيق ، تماماً كالمثال الذي وضعته ، فالملف قد يتم حذفه من المستخدم ، وبالتالي يصطاد لي هذا الخطأ ويعرضه ...

على كل حال ، في قائمة Debug.Exception تستطيع التحكم بكامل الاستثناءات ....

بالتوفيق إن شاء الله

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#18

فقط للمعلومية :

إذا كنت تقصد App.LogMode فلم تعد مدعومه في VB.NET والرابط التالي قد يفيدك :

http://msdn.microsoft.com/en-us/library/aa984469(v=vs.71).aspx

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#19

شكراً لكم جميعاً !!!

إظاهر أن مفيش حل غير عمل Constraint عام وقراءة محتوياتة ... أنظر الكود التالي :

1- كتابة ثابت عام بموديول كما يلي :

Public Const StopError As Boolean = True

2- كتابة الإستثناء كما يلي :

Try
    FileSystem.FileOpen(1, "C:\Data.txt", OpenMode.Input)
    FileSystem.FileClose(1)
Catch
    If (StopError = True) Then
        Throw
    Else
        MsgBox("Error")
    End If
End Try

أو يتم إستبدال الثابت العام StopError الي مفتاح بمسجل النظام RegEdit !!!

بس بهذا الشكل مطلوب مننا أننا نتأكد من أن قيمة (StopError = False) حتي لا يعرض الرسالة المعتادة !!!

أعتقد بكدة سيكون حل مبدئي ... بم أن ميكروسوفت مفيش فايدة فيها !!!

لازم يطلع من ورائها شوكة !!!

تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 2 مارس 2012 في 14:07

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#20

هذا الكود If Dir("C:\Data.txt") = "" Then

للتاكد من ان الملف موجود او غيرموجود اولآ

لو وضعنا الكود

FileSystem.FileOpen(1, "C:\Data.txt", OpenMode.Input)

FileSystem.FileClose(1)

تأتى رسالة الخطأ 1330626955921.jpg

احاول تبسيط الفكرة

تم تعديل هذه المشاركة بواسطة madapop في 2 مارس 2012 في 14:21

مبرمج نظم معلومات

#21

حبيب قلبي ... أنت رحت بعيد جدا !!!

أنا عارف طريقة المعالجة نفسها ... بس القضية ليست قضية طريقة معالجة الكود نفسة !!!

القضية أن لما الواحد بيكتب كود برمجي أياً كان ... سواء معالجة ملف أو قاعدة بيانات أو جملة إستعلام ... أحياناً بيغلط دون قصد !!!

المطلوب بالضبط أني عاوز حتي ولو كان تم عمل إستثناء يلغي تلك الإستثناء تماماً طوال تعامل مع البرنامج أثناء الـ Design ... لكن لما أحول البرنامج الي ملف تنفيذي Exe يعمي الإستثناء طبيعي دون أي مشاكل ويتجاهل الأخطاء !!!

أنظر الصورة التالية من فيجوال بيزيك 6.0 :

post-126779-083895600 1330687671_thumb.p

لاحظ بالصورة جيداً ... وقف البرنامج عند مكان الخطأ كأن مفيس معالجة إستثناء أساساً !!!

والسبب الحقيقي هو لأنني قمت بضبط الفيجوال بيزيك 6.0 علي Break on All Errors. أنظر الصورة التالية :

post-126779-047172600 1330687950_thumb.p

لكن في حالة لو أنا عاوز الإستثناء يفعل يتم ضبط الخيارات الي Break in Class Module ... كما بالشكل التالي :

post-126779-017169000 1330687916_thumb.p

إذاً فالمشكلة ليست حل مشكلة الكود نفسة Dir ... لكن أنا أتحدث عن الفكرة نفسها الموجودة بالفيجوال 6.0 ... والتي كنا نستخدمها دون أي كود برمجي وأي حيل برمجية ... هذا هو المطلوب بالضبط !!!

دة غير أن الأمر App.LogMode غير مدعومة !!!

يعني كملت رسمي !!!

المرفقات
Error VB6.0.PNGOptions 2.PNGOptions 1.PNG

تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 2 مارس 2012 في 14:34

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#22

أخي لا أعتقد أن عدم وجود Break on all errors في VB.NET تعتبر عيب ، فالمطورون تركوا لك حرية الـ debugging كما تشاء ، وكما ذكرت لك سابقاً بإمكانك تفعيل الـ Exception الذي تريده أو عدم تفعيله ...

إذا كنت تريد الوقوف على كامل الأخطاء أثناء تصميم البرنامج حتى بوجود TRY CATCH فما عليك إلا الذهاب إلى قائمة Debugging ومنها اختر Exceptions ثم قم بعمل Check على Thrown لـ Common Language Runtime Exceptions وهنا حتى لو قمت بتنفيذ البرنامج ومع وجود TRY CATCH فلن تقوم TRY CATCH بعمل اصطياد للخطأ ... وسيخبرك الـ Debugger بوجود خطأ ...

أتمنى أن يكون هذا طلبك ...

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#23

أخ عاشق للبرمجة ... تحياتي لك !!!

فعلاً هذا المطلوب ... وأنا مخطأ لأنني لم أنتبه لكلامك في البداية !!!

فعلاً هذا هو المطلوب

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

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

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

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#24
MMA_EG_Cairo كتب:

أخ عاشق للبرمجة ... تحياتي لك !!!

فعلاً هذا المطلوب ... وأنا مخطأ لأنني لم أنتبه لكلامك في البداية !!!

فعلاً هذا هو المطلوب

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

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

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

ما عليك يا صديقي ...

الحمد لله أن المشكلة انحلت ..

وجزاك الله بالمثل أخي الحبيب ...

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

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