17-10-12, 04:01 PM
بسم الله الرحمن الرحيم
في هذا الدرس :
1. سنكمل ما بدأنا فية بتخطي الأخطاء والتعامل معها في بيئة الدوت نت
في البداية اقرأ هذا الموضوع للتعرف على الأخطاء بصورة عامة
http://vb4arb.com/vb/showthread.php?390-...%CA-%E4%CA
افتح تطبيق Console جديد وكتب هذا الأمر :
شغل التطبيق ثم اكتب مثلا اي حرف
سيكتب كلام كثير ثم يتوقف البرنامج عن العمل لنبدأ في الشرح
عندما تمرر قيمة من نوع اخر غير int للبرنامج سيحدث خطأ غير متوقع
بإمكانك استخدام
Try
لكن هذا متعب ويجب ان تقوم بوضعة في جميع الأكواد او ربما كما ذكرنا في المقالة السابقة اخطاء لا تضع لها حساب وتقع !
حسننا في البداية نبدأ في وضع تحويل لكل الأخطاء
UnhandledException
هذا الحدث يكمن هنا
AppDomain.CurrentDomain.
اذا لنضعة داخل Main ليصبح الكود
طبعا سنشأ void بسم UnhandledExceptionTrapper وهو الذي سيعود الية كل الأخطاء :
طيب الأن نقع في حرج فمثلا نريد ان نحصل على رسالة الخطأ فقط وليس الكلام الكثير فإذا كتبنا داخل هذا الأمر
Console.Write(e.toString);
سنفاجء بنص كثير اذا ما الحل
الحل في ان نحول e الى Exception
هكذا
والأن يمكننا كتابة :
Console.Write(e.Message);
ليصبح الكود في الختام :
جرب الأن كتابت حرف ستجدة اخرج لك رسالة الخطأ
- ملحوظة هامة - إذا كانت لغتك التي ثبت بها الدوت نت عربية فستظهر رسالة الخطأ بصورة غريبة لأن Console لا يدعم اللغة العربية
وأي سؤال انا جاهز
بالتوفيق
في هذا الدرس :
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());
}
كود :
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 لا يدعم اللغة العربية
وأي سؤال انا جاهز
بالتوفيق
صل من قطعك , واعط من منعك , وإعف عن من ظلمك