تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[تطبيق console] كيف تتخطى نافذة الخطأ Error Dialog في الدوت نت
#1
بسم الله الرحمن الرحيم

في هذا الدرس :
1. سنكمل ما بدأنا فية بتخطي الأخطاء والتعامل معها في بيئة الدوت نت

في البداية اقرأ هذا الموضوع للتعرف على الأخطاء بصورة عامة
http://vb4arb.com/vb/showthread.php?390-...%CA-%E4%CA

افتح تطبيق Console جديد وكتب هذا الأمر :

كود :
int i = Convert.ToInt32(Console.ReadLine());
شغل التطبيق ثم اكتب مثلا اي حرف
سيكتب كلام كثير ثم يتوقف البرنامج عن العمل لنبدأ في الشرح
عندما تمرر قيمة من نوع اخر غير int للبرنامج سيحدث خطأ غير متوقع
بإمكانك استخدام
Try
لكن هذا متعب ويجب ان تقوم بوضعة في جميع الأكواد او ربما كما ذكرنا في المقالة السابقة اخطاء لا تضع لها حساب وتقع !
حسننا في البداية نبدأ في وضع تحويل لكل الأخطاء
UnhandledException
هذا الحدث يكمن هنا
AppDomain.CurrentDomain.
اذا لنضعة داخل Main ليصبح الكود
كود :
static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;
            int i = Convert.ToInt32(Console.ReadLine());
        }
طبعا سنشأ void بسم UnhandledExceptionTrapper وهو الذي سيعود الية كل الأخطاء :
كود :
static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e)
        {
            
        }
طيب الأن نقع في حرج فمثلا نريد ان نحصل على رسالة الخطأ فقط وليس الكلام الكثير فإذا كتبنا داخل هذا الأمر
Console.Write(e.toString);
سنفاجء بنص كثير اذا ما الحل
الحل في ان نحول e الى Exception
هكذا
كود :
Exception error = (Exception)e.ExceptionObject;
والأن يمكننا كتابة :
Console.Write(e.Message);
ليصبح الكود في الختام :
كود :
using System;
using System.Collections.Generic;
using System.Text;

namespace TestFun
{
    class Program
    {
        [MTAThread]
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;
            int i = Convert.ToInt32(Console.ReadLine());
        }
      
        static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e)
        {
            Exception exception = (Exception)e.ExceptionObject;
            Console.Beep();
            Console.WriteLine(exception.Message);

        }
    }
}
جرب الأن كتابت حرف ستجدة اخرج لك رسالة الخطأ
- ملحوظة هامة - إذا كانت لغتك التي ثبت بها الدوت نت عربية فستظهر رسالة الخطأ بصورة غريبة لأن Console لا يدعم اللغة العربية

وأي سؤال انا جاهز Smile

بالتوفيق Big Grin
صل من قطعك , واعط من منعك , وإعف عن من ظلمك Big Grin
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [C#.NET] مشاركات : #1 دورة بالصوت ووالصورة في برمجة الشبكات في الدوت نت m00755 0 490 05-05-15, 04:43 AM
آخر رد: m00755
  كيف تتخطى نافذة الخطأ Error Dialog في الدوت نت Mostafa Dahab 7 1,226 28-09-12, 04:41 AM
آخر رد: Mostafa Dahab

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم