PDA

View Full Version : سوال: مدیریت خطا در حلقه



ali190
شنبه 21 آبان 1390, 21:07 عصر
باسلام و عرض خسته نباشید
دوستان میخواستم از خدمتتون بپرسم چطور میشه در یک حلقه خطاها رو مدیریت نمود؟
مثلاً به حلقه زیر دقت نمائید
For i=0 to Adodc1.Recordset.Recordcount
Me.Adodc2.Recordset.Addnew
Adodc2.Recordset.Field("name")=Adodc1.Recordset.Field("nam
Adodc1.Recordset.Movenext
Next i
فرض کنید اندازه فیلد name 20 میباشد
اگر در این بین اندازه یکی از اسمها بزرگتر از 20 باشد با خطا مواجه میشم
(البته این رو مدونم که میشه قبلش با تابع len مقدار وارده رو بگیرم و مدیریتش کنم)
میخواستم بدونم چطور میتونم این نوع خطا ها رو در یک حلقه مدیریت کنم؟
ممنون
یاعلی

Mr'Jamshidy
شنبه 21 آبان 1390, 21:45 عصر
On Error Goto Err
{
.
.
Your Code
.
.
}

Err:
Msgbox "Error Detected!"
Resume

با فرمان Resume برنامه بر میگرده به همون خطی که خطا بوجود اومده بود
با فرمان Resume Next برنامه میره به خط بعد اون خطی که خطا داخلش بوجود اومده بود

دیگه نحوه مدیریت خطا به خودت مربوطه

محسن واژدی
شنبه 21 آبان 1390, 21:58 عصر
سلام علیکم
توضیحات لازمه را آقای جمشیدی دادند، کد زیر را هم میتوانید به عنوان نمونه بررسی کنید:

Private Sub Command1_Click()
On Error GoTo hErr
'Code example
Dim iInteger%
iInteger% = 5000000
MsgBox "Resume Next", vbInformation
'''''''''''''
Exit Sub
hErr:

Select Case MsgBox("Error: " & Err.Number & vbNewLine & Err.Description, vbAbortRetryIgnore + vbCritical, "Error")
Case vbRetry: Resume
Case vbIgnore: Resume Next
End Select

End Sub


موفق باشید