واضح آرشیو وب فارسی:سایت ریسک: دسترسی به خطا ها در ويژوال بیسيك 1 14 بهمن 1386, 21:12چجور ميشه به خطا ها دسترسي پدا كرد يعني برو به خطاي فلان شماره در ويژوال بسيك را ميگم the_king 15 بهمن 1386, 11:42اگر می خواهید یک خطای خاصی را ایجاد کنید (شرایط بروز خطا شبیه سازی شوند) کافی است که شماره خطا را بدانید و انرا با 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 از تابع خارج شویم. من در قسمت مدیریت وقفه یک پیغامی را به کاربر نمایش می دهم که شماره خطا و توضیحات آنرا نشان می دهد. این قسمت می تواند به دلخواه تغییر کند، هیچکاری انجام ندهد (از نمایش خطا صرف نظر شود) یا کار خاصی که می خواهید را انجام دهد. saalek110 15 بهمن 1386, 13:59با تشکر از توضیحات بسیار خوب شما. در پست شماره 151 () آموزش مصور ویژوال بیسیک نقل شد.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3077]