دسترسی به خطا ها در ويژوال بیسيك

  • شروع کننده موضوع 1
  • تاریخ شروع

1

New Member
چجور ميشه به خطا ها دسترسي پدا كرد يعني برو به خطاي فلان شماره در ويژوال بسيك را ميگم
 

the_king

مدیرکل انجمن
اگر می خواهید یک خطای خاصی را ایجاد کنید (شرایط بروز خطا شبیه سازی شوند) کافی است که
شماره خطا را بدانید و انرا با Err.Raise فراخوانی کنید مثلا :

کد:
Err.Raise 7
خطای شماره 7 مربوط به کمبود حافظه و Out of memory است و منجر به بروز این خطا می شود.

اما اگر می خواهید هنگامی که خطایی رخ داد، خودتان در مورد نمایش یا عدم نمایش آن تصمیم بگیرید
و یا پیغامی که دوست دارید را نمایش دهید، آنگاه بایستی این موارد را در نظر بگیرید :
اول در منوی Visual Basic وارد قسمت Tools و سپس Options شوید.
حالا وارد بخش General شوید و تنظیم Error Trapping را روی Break on unhandled Errors قرار دهید.
اینطوری فقط خطاهایی توسط Visual Basic نمایش می یابند که خود شما کنترلی روی آنها نداشته باشید.
فرض کنیم که یک تابع داریم به نام Divide که دو پارامتر ورودی از هر نوعی (Variant) را بر هم تقسیم می کند
و حاصلش را بر می گرداند :

کد:
Private Function Divide(Number1, Number2)
    Divide = Number1 / Number2
End Function

اما این کد ما در حالتهایی موجب بروز خطا می شود، مثلا اگر من به عنوان دو پارامتر ورودی مقادیر "a" و "b" را به
تابع ارسال کنم، یا مقدار پارامتر دوم صفر باشد یا حاصل تقسیم خیلی بزرگ بشود که در خروجی تابع جا نگیرد.

اکنون وقت آن است که ما یک روتین برای به دام انداختن خطاهای گوناگون بنویسیم.
این خطا می تواند برای تقسیم یک عدد بر صفر و یا تقسیم دو عددی که حاصلش بزرگتر از محدوده بازه عددی
است و یا ... باشد :

کد:
Private Function Divide(Number1, Number2)
    On Error GoTo Label_Error
    Divide = Number1 / Number2
    Exit Function
Label_Error:
    MsgBox "Error number : " & Err.Number & vbNewLine _
    & "Error description : " & Err.Description
End Function

در این کدهایی که من به تابع اضافه کردم، هر گاه که خطایی رخ بدهد به برچسب Label_Error می پرد تا خطای
به تله افتاده را مدیریت کنیم. اما اگر خطایی رخ ندهد بایستی با استفاده از Exit Function از تابع خارج شویم.
من در قسمت مدیریت وقفه یک پیغامی را به کاربر نمایش می دهم که شماره خطا و توضیحات آنرا نشان می دهد.
این قسمت می تواند به دلخواه تغییر کند، هیچکاری انجام ندهد (از نمایش خطا صرف نظر شود) یا کار خاصی که
می خواهید را انجام دهد.
 

جدیدترین ارسال ها

بالا