هذه الإمكانية تجعلني أتمكن من رؤية كافة الأخطاء الموجودة بالكود الخاص بيا سواء كنت أستخدم إستثناء محدد أو لا !!!
On Error Resoume Next
On Error Go To 1
Try
أياً كانت الطريقة المستخدمة ، أرجو رؤية كافة الأخطاء الموجودة بالكود البرمجي !!!
هذه الإمكانية تجعلني أتمكن من رؤية كافة الأخطاء الموجودة بالكود الخاص بيا سواء كنت أستخدم إستثناء محدد أو لا !!!
On Error Resoume Next
On Error Go To 1
Try
أياً كانت الطريقة المستخدمة ، أرجو رؤية كافة الأخطاء الموجودة بالكود البرمجي !!!
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
أرجو المساعدة !!!
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
استخدم Try من غير ما تحدد الاكسبشن يعنى بالشكل ده
Try Catch Throw End Try
حضرتك تقصد
/uploads/monthly_02_2012/post-126779-045949000%201330535039.png
ممكن ترفع المشروع كرابط
على الخاص لو تحب وإن شاء الله تتحل المشكلة
مبرمج نظم معلومات
هي هي نفس المشكلة ... مفيش فرق !!!
بإختصار شديد ، أنا قمت بعمل :
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 ... أنظروا الصورة التالية :
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
أريد بالضبط يكون بهذا الشكل ولكن أثناء التصميم فقط لا غير ... أما أثناء تنفيذ البرنامج وتحويلة الي EXE لا يقم بفعل هذه الفكرة !!!
أنظر الصورة التالية :
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
بالضبط ... ولكن دون أن أفعل Toggle Breakpoin !!!
ويتم عرض الخطأ أثناء وضع الخطأ في منتصف الإستثناء
Try
Resume Next
Go To
!!!!
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
طيب بلاش دية سؤال آخر بطريقة أخري !!!
هناك طريقة بالفيجوال بيزيك تدعي LogMode ... فحينما يكون البرنامج أثناء الـ Design يعرض القيمة (0)
وحينما يكون البرنامج في وضع ملف تنفيذي EXE يعرض القيمة (1) ... هل لديك الحل ؟؟؟
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
جرب كتابة الكود http://im21.gulfup.com/2012-03-01/1330634277471.jpg
فعلا الكود كما طلبت
مبرمج نظم معلومات
madapop كتب:جرب كتابة الكود http://im21.gulfup.com/2012-03-01/1330634277471.jpg
فعلا الكود كما طلبت
حبيب قلبي ... أنظر الي الصورة التالية :
لا أريد أن تعرض هذه الشاشة بعد تحويل سورس كود البرنامج الي ملف تنفيذي EXE !!!
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
الموضوع مش محتاج مثال !!! كل الحكاية أني عاوز الأخطاء كلها تبانلي أثناء تصميم البرنامج ... علشان أقدر أعالج أي خطأ فوراً دون مشاكل ... لكن لما أحول البرنامج الي ملف تنفيذي EXE كي أرسلة للمستخدم لا يعرض ليا أي رسالة خطأ !!!
هي دي الفكرة مش أكثر !!!
فحينما كنت أتعامل مع فيجوال بيزيك 6.0 كان كل حاجة مفتوحة ليا (كل الأخطاء) ... كنت بكتب جملة مثلاً
On Error Resume Next
كأني مكتبتهاش وأي غلطة تبان ليا علي طول وموقعها علي الفور !!!
لكن لما أحول البرنامج الي ملف تنفيذي EXE يختفي كل الأخطاء لأني مجهزها من بدايتها !!!
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
فاهم قصد حضرتك
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)
تأتى رسالة الخطأ 
فيقوم المبرمج بمنعها بتأكيد وجود الملف من عدمه بالكود
If Dir("C:\Data.txt") = "" Then
MsgBox("Error")
بيئة vb6
تختلف عن #vb.net or C
تم تعديل هذه المشاركة بواسطة madapop في 2 مارس 2012 في 01:03
مبرمج نظم معلومات
أخي العزيز
Try - catch وضعت كـ Trap للأخطاء ، أعتقد أن Break on all errors افتراضية ، بمعنى آخر ، لا تستخدم tray catch إلا بعد أن تتأكد من عدم وجود أخطاء ببرنامج ، وعند الانتهاء ضع try catch للكود الذي سستوقع أنه قد يتسبب بمشكلة بعد تحويل المشروع لتطبيق ، تماماً كالمثال الذي وضعته ، فالملف قد يتم حذفه من المستخدم ، وبالتالي يصطاد لي هذا الخطأ ويعرضه ...
على كل حال ، في قائمة Debug.Exception تستطيع التحكم بكامل الاستثناءات ....
بالتوفيق إن شاء الله
... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

فقط للمعلومية :
إذا كنت تقصد App.LogMode فلم تعد مدعومه في VB.NET والرابط التالي قد يفيدك :
http://msdn.microsoft.com/en-us/library/aa984469(v=vs.71).aspx
... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

شكراً لكم جميعاً !!!
إظاهر أن مفيش حل غير عمل 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
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
هذا الكود If Dir("C:\Data.txt") = "" Then
للتاكد من ان الملف موجود او غيرموجود اولآ
لو وضعنا الكود
FileSystem.FileOpen(1, "C:\Data.txt", OpenMode.Input)
FileSystem.FileClose(1)
تأتى رسالة الخطأ 
احاول تبسيط الفكرة
تم تعديل هذه المشاركة بواسطة madapop في 2 مارس 2012 في 14:21
مبرمج نظم معلومات
حبيب قلبي ... أنت رحت بعيد جدا !!!
أنا عارف طريقة المعالجة نفسها ... بس القضية ليست قضية طريقة معالجة الكود نفسة !!!
القضية أن لما الواحد بيكتب كود برمجي أياً كان ... سواء معالجة ملف أو قاعدة بيانات أو جملة إستعلام ... أحياناً بيغلط دون قصد !!!
المطلوب بالضبط أني عاوز حتي ولو كان تم عمل إستثناء يلغي تلك الإستثناء تماماً طوال تعامل مع البرنامج أثناء الـ Design ... لكن لما أحول البرنامج الي ملف تنفيذي Exe يعمي الإستثناء طبيعي دون أي مشاكل ويتجاهل الأخطاء !!!
أنظر الصورة التالية من فيجوال بيزيك 6.0 :
لاحظ بالصورة جيداً ... وقف البرنامج عند مكان الخطأ كأن مفيس معالجة إستثناء أساساً !!!
والسبب الحقيقي هو لأنني قمت بضبط الفيجوال بيزيك 6.0 علي Break on All Errors. أنظر الصورة التالية :
لكن في حالة لو أنا عاوز الإستثناء يفعل يتم ضبط الخيارات الي Break in Class Module ... كما بالشكل التالي :
إذاً فالمشكلة ليست حل مشكلة الكود نفسة Dir ... لكن أنا أتحدث عن الفكرة نفسها الموجودة بالفيجوال 6.0 ... والتي كنا نستخدمها دون أي كود برمجي وأي حيل برمجية ... هذا هو المطلوب بالضبط !!!
دة غير أن الأمر App.LogMode غير مدعومة !!!
يعني كملت رسمي !!!
تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 2 مارس 2012 في 14:34
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
أخي لا أعتقد أن عدم وجود Break on all errors في VB.NET تعتبر عيب ، فالمطورون تركوا لك حرية الـ debugging كما تشاء ، وكما ذكرت لك سابقاً بإمكانك تفعيل الـ Exception الذي تريده أو عدم تفعيله ...
إذا كنت تريد الوقوف على كامل الأخطاء أثناء تصميم البرنامج حتى بوجود TRY CATCH فما عليك إلا الذهاب إلى قائمة Debugging ومنها اختر Exceptions ثم قم بعمل Check على Thrown لـ Common Language Runtime Exceptions وهنا حتى لو قمت بتنفيذ البرنامج ومع وجود TRY CATCH فلن تقوم TRY CATCH بعمل اصطياد للخطأ ... وسيخبرك الـ Debugger بوجود خطأ ...
أتمنى أن يكون هذا طلبك ...
... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

أخ عاشق للبرمجة ... تحياتي لك !!!
فعلاً هذا المطلوب ... وأنا مخطأ لأنني لم أنتبه لكلامك في البداية !!!
فعلاً هذا هو المطلوب
جزاك الله كل خير
جزاك الله كل خير
السلام عليكم ورحمة الله وبركاتة
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
MMA_EG_Cairo كتب:أخ عاشق للبرمجة ... تحياتي لك !!!
فعلاً هذا المطلوب ... وأنا مخطأ لأنني لم أنتبه لكلامك في البداية !!!
فعلاً هذا هو المطلوب
جزاك الله كل خير
جزاك الله كل خير
السلام عليكم ورحمة الله وبركاتة
ما عليك يا صديقي ...
الحمد لله أن المشكلة انحلت ..
وجزاك الله بالمثل أخي الحبيب ...
... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...
