كيفية استخدام الاستثناء مصنفة معالجة في Visual Basic.net أو في Visual Basic 2005

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية315965
الموجز
يوضح هذا المقال كيفية استخدام الاستثناء معالجة في.net Visual Basic أو Visual Basic 2005.

back to the top

متطلبات

توضح القائمة التالية الأجهزة الموصى بها، والبرامج والبنية الأساسية للشبكة وحزم الخدمات التي تحتاجها:
  • Visual Basic.net أو Visual Basic 2005
تفترض هذه المقالة أنك معتاد مع المواضيع التالية:
  • Visual Basic.net أو Visual Basic 2005
  • Microsoft Visual Studio.net أو Microsoft Visual Studio 2005
back to the top

معالجة الاستثناء مصنفة

.NET Visual Basic أو Visual Basic 2005 يقدم معالجة الاستثناء المركبة التي توفر بديلاً قوية وأكثر قابلية للقراءة لمعالجة الأخطاء "On Goto خطأ"، التي تتوفر في الإصدارات السابقة من Microsoft Visual Basic. معالجة الاستثناء مصنفة بشكل أفضل لأنه يسمح بتداخل معالجات الخطأ داخل معالجات الخطأ أخرى داخل نفس الإجراء. علاوة على ذلك، يستخدم معالجة الاستثناء مصنفة بناء جملة كتلة مشابهة إذا...آخر...إذا البيان. هذا يجعل التعليمات البرمجية ل visual Basic.net و 2005 Visual Basic أكثر قابلية للقراءة وصيانتها أسهل.

ملاحظة: Visual Basic.net أو Visual Basic 2005 يحتفظ بناء الجملة "On Goto خطأ" من أجل التوافق مع الإصدارات السابقة. لا يزال يمكنك استخدام بناء الجملة في التعليمات البرمجية ل visual Basic.net أو 2005 Visual Basic. ومع ذلك، لا يمكنك دمج معالجة الاستثناء المركبة وجمل On Error داخل نفس الإجراء. عند كتابة رمز جديد، توصي Microsoft باستخدام بناء معالجة الاستثناء.

بناء الجملة الأساسي لمعالجة الخطأ مصنفة كما يلي:
Try   'Code that may raise an error.Catch   'Code to handle the error.Finally   'Code to do any final clean up.End Try				
عبارات حاول و حاول نهاية مطلوبة. عبارات Catch و أخيرا غير مطلوبة، على الرغم من يجب عليك تضمين واحد على الأقل في التعليمات البرمجية الخاصة بك. يمكنك أيضا تحديد عدة عبارات Catch حيث أن كل كتلة Catch معالجة خطأ محدد.

back to the top

التقاط استثناء

  1. بدء تشغيل برنامج Visual Studio.net أو Visual Studio 2005.
  2. إنشاء مشروع "تطبيق وحدة تحكم" جديد في Visual Basic.net أو في Visual Basic 2005.
  3. في إجراء Sub Main ، أضف التعليمات البرمجية التالية:
    Dim a As Integer = 0Dim b As Integer = 0Dim c As Integer = 0Try  a = b \ cCatch exc As Exception  Console.WriteLine("A run-time error occurred")Finally  Console.ReadLine()End Try					
  4. في القائمة " تصحيح "، انقر فوق " ابدأ " لتشغيل التطبيق. يحاول التعليمة البرمجية قسمة رقم على صفر. هذا هو عملية غير قانونية تؤدي إلى قسمة على صفر الاستثناء. لحسن الحظ، كتلة Catch الالتقاط هذا الخطأ، وإطار وحدة التحكم بعرض رسالة الخطأ التالية:
    A run-time error has occurred						
  5. إغلاق إطار وحدة التحكم.
back to the top

التقاط الاستثناءات متعددة

يوضح هذا القسم كيفية استخدام عبارات التقاط عدة لمعالجة الأخطاء مختلفة.
  1. افتح المشروع "تطبيق وحدة التحكم" الذي قمت بإنشائه في المقطع السابق.
  2. في إجراء Sub Main ، استبدال التعليمة البرمجية التي قمت بنسخها في المقطع السابق مع التعليمات البرمجية التالية:
    Dim a As Integer = 2147483647Dim b As Integer = 0Dim c As Integer = 0Try  a += 1Catch exc As DivideByZeroException  Console.WriteLine("Error: Divide by zero")Catch exc As OverflowException  Console.WriteLine("Error: Overflow")Finally  Console.ReadLine()End Try						
    هذه التعليمات البرمجية تتضمن كتل Catch اثنين: واحد لالتقاط الفجوة السابقة عن طريق الخطأ صفر وواحد التقاط خطأ تجاوز السعة جديد.
  3. في القائمة " تصحيح "، انقر فوق " ابدأ " لتشغيل التطبيق. يعرض إطار وحدة التحكم رسالة الخطأ التالية:
    Error: Overflow						
  4. إغلاق إطار وحدة التحكم.
  5. لأن دوماً لا تتوقع كل خطأ يحدث التي قد تحدث، يمكنك إضافة كتلة التقاط جميع استثناءات غير متوقعة. على سبيل المثال، أضف التعليمات البرمجية التالية قبل عبارة أخيرا لالتقاط أي أخطاء غير متوقعة وعرض رسالة الخطأ المناسب:
    Catch exc As ExceptionConsole.WriteLine("Error: " & exc.Message)					
  6. من القائمة ملف ، انقر فوق الحل إغلاق.
back to the top

قم بطرح استثناء

يستخدم معالجة الاستثناء مصنفة عبارة Catch لالتقاط استثناء. معالجة الاستثناء كما يوفر طريقة ليقوم بطرح استثناء. على سبيل المثال، يكون من المفيد قم بطرح استثناء عند تنفيذ التحقق من صحة البيانات داخل إجراء تعيين الخاصية لأنك قد ترغب في طرح خطأ إذا خرق قاعدة عمل.
  1. بدء تشغيل برنامج Visual Studio.net أو Visual Studio 2005.
  2. إنشاء مشروع "تطبيق وحدة تحكم" جديد في Visual Basic.net أو في Visual Basic 2005.
  3. من القائمة المشروع انقر فوق إضافة فئة.
  4. في الإطار " إضافة عنصر جديد "، اكتب clsPerson.vb في نص اسم مربع ومن ثم انقر فوق موافق.
  5. إضافة التعليمة البرمجية التالية داخل clsPerson "الطبقة العامة"...إنهاء فئة البيانات:
    Private mintAge As IntegerPublic Property Age() As Integer  Get    Age = mintAge  End Get  Set(ByVal Value As Integer)    If Value >= 0 Then      mintAge = Value    Else      Throw New ArgumentException ("Age cannot be negative")    End If  End SetEnd Property						
    ينشئ هذا الرمز على خاصية العمر . لأنه لا يمكن أن يكون شخص عمر سالبة، يظهر خطأ إذا حاول مستخدم الفئة لتعيين العمر إلى رقم أقل من الصفر.
  6. في إجراء Sub Main من Module1.vb، أضف التعليمات البرمجية التالية:
    Dim p As New clsPerson()Try  p.Age = -1Catch exc As Exception  Console.WriteLine(exc.Message)Finally  Console.ReadLine()End Try					
  7. في القائمة " تصحيح "، انقر فوق " ابدأ " لتشغيل التطبيق. يعرض إطار وحدة التحكم رسالة الخطأ التالية:
    Age cannot be negative						
  8. إغلاق إطار وحدة التحكم.
back to the top

إتمام سرد التعليمات البرمجية

التقاط استثناء

Module Module1  Sub Main()    Dim a As Integer = 0    Dim b As Integer = 0    Dim c As Integer = 0    Try      a = b \ c    Catch exc As Exception      Console.WriteLine("A run-time error occurred")    Finally      Console.ReadLine()    End Try  End SubEnd Module				
back to the top

التقاط الاستثناءات متعددة

Module Module1  Sub Main()    Dim a As Integer = 2147483647    Dim b As Integer = 0    Dim c As Integer = 0    Try      a += 1    Catch exc As DivideByZeroException      Console.WriteLine("Error: Divide by zero")    Catch exc As OverflowException      Console.WriteLine("Error: Overflow")    Catch exc As Exception      Console.WriteLine("Error: " & exc.Message)    Finally      Console.ReadLine()    End Try  End SubEnd Module				
back to the top

قم بطرح استثناء

Module Module1  Sub Main()    Dim p As New clsPerson()    Try      p.Age = -1    Catch exc As Exception      Console.WriteLine(exc.Message)    Finally      Console.ReadLine()    End Try  End SubEnd ModulePublic Class clsPerson  Private mintAge As Integer  Public Property Age() As Integer    Get      Age = mintAge    End Get    Set(ByVal Value As Integer)      If Value >= 0 Then        mintAge = Value      Else        Throw New ApplicationException("Age cannot be negative")      End If    End Set  End PropertyEnd Class				
back to the top

مراجع

لمزيد من المعلومات، ارجع إلى مواقع Microsoft التالية على الويب:
خطأ في معالجة طريقة VB.NET: المصابين بالاستثناءات (مادة مطور Visual Basic )
.aspx http://msdn.microsoft.com/en-us/library/aa227603 (v=vs.60)

كيفية التقاط استثناء
.aspx http://msdn.microsoft.com/en-us/library/ys1b32h3 (v=vs.80)

كيف طرح استثناء
.aspx http://msdn.microsoft.com/en-us/library/z7w9ff54 (v=vs.80)

back to the top

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 315965 - آخر مراجعة: 06/15/2012 08:20:00 - المراجعة: 2.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtar
تعليقات