مشاركة عبر


كيفية القيام بما يلي: استخدام استثناءات محددة في كتلة الالتقاط

عند حدوث استثناء , يتم تمريره لأعلى في المكدس , وبتم إعطاء كل كتلة التقاط الفرصة لمعالجته. ترتيب عبارات الالتقاط ذو أهمية. ضع كتل الإلتقاط التي تستهدف استثناءات محددة قبل كتلة التقاط الاستثناء العام أو قد يقوم المحول البرمجي بإصدار خطأ. تحديد كتلة الالتقاط المناسبة يتم بواسطة مطابقة نوع الإستثناء مع اسم الإستثناء المحدد في كتلة الالتقاط. إذا لم تكن هناك كتلة التقاط محددة , يتم التقاط الاستثناء بواسطة كتلة الالتقاط العامة , إن وجدت.

يستخدم مثال التعليمات البرمجية التالي يستخدم كتلة محاولة/التقاط لالتقاط InvalidCastException. النموذج ينشئ فئة تسمى Employee مع خاصية واحدة, مستوى الموظف ( Emlevel). أسلوب , PromoteEmployee ، يأخذ كائن و يزيد مستوى الموظف وحدة واحدة. يحدث InvalidCastException عند تمرير مثيل DateTime إلى الأسلوب PromoteEmployee.

مثال

Imports System
Public Class Employee
   'Create employee level property.
   
   Public Property Emlevel() As Integer
      Get
         Return emlevel
      End Get
      Set
         emlevel = value
      End Set
   End Property
   Private emlevel As Integer
End Class 'Employee
 
Public Class Ex13
   
   Public Shared Sub PromoteEmployee(emp As [Object])
      'Cast object to Employee.
      Dim e As Employee = CType(emp, Employee)
      ' Increment employee level.
      e.Emlevel = e.Emlevel + 1
   End Sub 'PromoteEmployee
   
   Public Shared Sub Main()
      Try
         Dim o = New Employee()
         Dim newyears As New DateTime(2001, 1, 1)
         'Promote the new employee.
         PromoteEmployee(o)
         'Promote DateTime; results in InvalidCastException as newyears is not an employee instance.
         PromoteEmployee(newyears)
      Catch e As InvalidCastException
         Console.WriteLine(("Error passing data to PromoteEmployee method. " + e))
      End Try
   End Sub 'Main
End Class 'Ex13
using System;
public class Employee
{
   //Create employee level property.
   public int Emlevel
   {
      get
         {
         return(emlevel);
         }
      set
         {
         emlevel = value;
         }
   }
   int emlevel;
}

public class Ex13 
{
   public static void PromoteEmployee(Object emp)
   {
   //Cast object to Employee.
   Employee e = (Employee) emp;
   // Increment employee level.
   e.Emlevel = e.Emlevel + 1;
   }

   public static void Main()
   {
   try
      {
   Object o = new Employee();
   DateTime newyears = new DateTime(2001, 1, 1);
   //Promote the new employee.
   PromoteEmployee(o);
   //Promote DateTime; results in InvalidCastException as newyears is not an employee instance.
   PromoteEmployee(newyears);
      }
   catch (InvalidCastException e)
      {
      Console.WriteLine("Error passing data to PromoteEmployee method. " + e);
      }
   }
}

وقت تشغيل اللغة العامة يلتقط الاستثناءات لم تلقطها كتلة التقاط. وفق كيفية تكوين وقت التشغيل , إما أن يظهر مربع حوار تصحيح الأخطاء , أو يتوقف تنفيذ البرنامج و يظهر مربع حوار به معلومات عن الاستثناء. للحصول على معلومات حول تصحيح الأخطاء ، راجع تطبيقات تصحيح الأخطاء و إنشاء تشكيل جانبي .

راجع أيضًا:

المهام

كيفية القيام بما يلي: استخدم كتلة حاول/التقط كتلة لالتقاط الاستثناءات

كيفية القيام بما يلي: طرح استثناء بشكل صريح

كيفية القيام بما يلي: إنشاء استثناءات مُعرفة من قبل المستخدم

كيفية القيام بما يلي: استخدام كتل أخيراً

المبادئ

فئة وخصائص الاستثناء

موارد أخرى

أساسيات معالجة الاستثناء