همه می دونیم که برنامه هایی که می نویسیم دارای خطاهایی است که باید آنها را تا جائی که ممکن  

است خطا یابی کنیم . دربرنامه ها در صورتی که احتمال وقوع (یک هزارم درصد) خطا وجود داشته باشد  باید

از وقوع آن جلوگیری کنیم تا موقعی که برنامه را کامپایل کردیم  هر کاربری که بابرنامه کار می کند،از برنامه

استفاده بهینه راببرد و از ورود اطلاعات اشتباهی جلوگیری شود.

در ویژوال بیسیک یک عنصر به نام ( Err ) وجود دارد که اول آن را شرح می دهیم.

 - - عنصر Err - -

    این عنصر خطاهایی که دربرنامه رخ می دهد را دربرنامه ذخیره می کند:

   خصوصیات مهم Err:

    خاصیت Number: کدخطائی که رخ داده است را به ما نمایش می دهد.

    خاصیت Description: شرح خطا را به ما نمایش می دهد.

   خاصیت Source: نام عنصر یا برنامه ای که خطادر آن رخ می دهد راتعیین میکند.

....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-.... 

متدهای مهم Err:

متد Clear:برای پاک کردن اطلاعات مربوط به خطای قبلی استفاده میشود .Err.Clear

   ....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-....-..-..-.... 

دستور ( On Error Goto LabelName ):

برای کنترل خطاها از این دستوراستفاده می شود و (LabelName) نامی است که برنامه به انجا می رود.

مثالی ساده: خطایابی تقسیم بر صفر(ErrNumber=11)و سرریز شدن ( ErrNumber=6).

Private Command1_Click ( )

On Error Goto Mess 

Dim v as Integer

Dim s as Integer

v=InputBox("Enter Number1:")

s=InputBox("Enter Number2:")

dive=v\s

Mess:

Select Case Err.Number

Case 11

call MsgBox("Ziro Division Occurs",vbInformation, "Critical")

Case 6

call MsgBox("Over Flow Occurs",vbInformation, "Critical")

End Select

End Sub

در صورتی که عدد دوم را صفر وارد کنید (Ziro Division Occurs) و در صورتی که هر دو عددرا 10 رقمی

واردکنید خطای (Over Flow Occurs) رخ می دهد.