امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
در مورد On Error
نویسنده پیام
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #1
در مورد On Error
hi2all

چرا با on error فقط یکبار خطا تشخیص داده میشه؟! باید چیکار کرد که هر دفعه خطا پیش اومد بشه تشخیص داد؟
به کد زیر توجه کنید
کد:
[align=left]Private Sub Command1_Click()
On Error GoTo E:

    'code
    'code e1

C:
    'code
    'code e2
    Exit Sub
E:
    'code
    GoTo C:
End Sub
[/align]
e1اولین خطا و e2 دومی.
در قسمت e2 ویژوال بیسیک خطا میگیره نه برنامه !


خودتون امتحان کنین
کد:
[align=left]Private Sub Command1_Click()
Dim Num
On Error GoTo E:

    Num = 10 / 0

C:
    Num = 10 / 0
    Exit Sub
E:
    MsgBox "Error"
    GoTo C:
End Sub
[/align]

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۰۳-اردیبهشت-۱۳۸۵, ۱۵:۰۴:۱۴
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #2
RE: در مورد On Error
دوست من سلام

سیستم تشخیص خطای وی بی نمی تونه خطاهای ثانوی رو با GoTo ردیابی کنه . برای اینکار از کلمه کلیدی با نام Resume استفاده میشه که میتونه با بازگشت دوباره به مسیر برنامه جاری چندین خطای پشت سر هم رو ردیابی کنه . در واقع با جانشین کردن GoTo C در کد شما با عبارت Resume Next ، شما به وی بی می گین که بعد از ردیابی خطای اول دوباره به مسیر اجرای برنامه برگرده ولی اینبار از خط بعدی به اجرای برنامه بپردازه که در اینصورت با وجود خطای دوم ، مکانیزم تشخیص خطا دوباره فعال میشه و واکنش نشون میده !

کد:
Private Sub Command1_Click()

Dim Num
On Error GoTo E:

Num = 10 / 0


Num = 10 / 0
Exit Sub
E:
MsgBox "Error"
Resume next

End Sub

اگر از خود Resume بدون Next استفاده کنی ، وی بی  بعد از ردیابی خطای اول دوباره به مسیر اجرای برنامه برگرده ولی اینبار از همون خطی که خطا توش رخ داده به اجرای برنامه می پردازه که با وجود حالت حلقه واری که در کد شما هست و نوع خطای تقسیم بر صفر که به هیچ وجه قابل رفع شدن نیست ، برنامه بطور متوالی پیغام خطای اول رو میده و هیچگاه پایان پیدا نمی کنه . در واقع یه حالت حلقه بینهایت پیدا می کنه !


گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۰۳-اردیبهشت-۱۳۸۵, ۱۵:۵۹:۱۶
ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #3
RE: در مورد On Error
تو دیگه کی هستی!
تشکر

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۰۳-اردیبهشت-۱۳۸۵, ۱۷:۰۷:۲۸
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] خطا Unexpected Error man551 1 3,759 ۲۲-شهریور-۱۳۹۲, ۱۱:۵۱:۴۷
آخرین ارسال: Di Di
  ارور Run-time error 50 aleas 4 4,293 ۱۹-شهریور-۱۳۹۲, ۱۲:۰۸:۳۹
آخرین ارسال: aleas
  علت ارور run time error در 7 yashar_2006 3 29,960 ۲۸-آذر-۱۳۹۱, ۲۰:۴۰:۵۵
آخرین ارسال: bejlali
  ERROR SendEmailGmail = .Send RAMA2009 16 10,972 ۱۲-دى-۱۳۹۰, ۲۳:۵۵:۴۷
آخرین ارسال: CRazYFULL
  Run-time error '3706' behzad_vb.net 5 5,107 ۱۳-آذر-۱۳۸۸, ۰۰:۵۰:۴۸
آخرین ارسال: 1120
Exclamation overflow error ncomputinguae 2 3,500 ۲۸-آبان-۱۳۸۸, ۱۱:۲۳:۰۷
آخرین ارسال: ncomputinguae
Question دوتا سوال در مورد ERROR vz67 11 9,573 ۲۵-بهمن-۱۳۸۷, ۲۲:۰۰:۳۷
آخرین ارسال: vz67
Exclamation کمک در رفع این Syntax Error Morpheus 32 24,007 ۰۳-آذر-۱۳۸۷, ۱۶:۱۲:۱۶
آخرین ارسال: Morpheus
Wink Compile Error mahdivbNET 5 4,205 ۰۴-مرداد-۱۳۸۷, ۰۰:۱۴:۱۴
آخرین ارسال: mahdivbNET
  با این پیغام چیکار کنم runtime Error 713 Application _defined or object_defined erro arshia60 0 3,204 ۲۱-اسفند-۱۳۸۶, ۰۹:۴۴:۰۳
آخرین ارسال: arshia60

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS