| English | سايت ديگر ما | Picture | Visual Basic | Delphi | Ebook | Forum[2] | SiteList | صفحه اصلي |
كنترل خطا
مثلمآ هيچيك از ما دوست نداريم جلوي دوستامون يا مدير مدرسه يا معلم برنامه مون با يك خطاي مهلك مثلآ سينتكس متوقف بشه هميشه دوست داريم
برنامه هامون بدون خطا اجرا بشه.آيا ممكنه برنامه اي نوشت كه اصلآ خطا نكنه.هيچ برنامه نويسي نمي تونه تمام رويداد هاي ممكن وحالت هاي مختلف
رو پيش بيني كنه ولي روش هايي براي جلو گيري از اعلام خطا وجود داره
ON Errorدستور
اين دستور در ابتداي يك رويداد نوشته مي شه و به برنامه مي گه وقتي خطا شد چي كار كنه .معمولآ به صورتهاي زير استفاده مي شه
On Error Resume Next---On Error GoTo Label Name
در حالت سمت چپ به برنامه مي گيم اگه خطا شد ازش صرف نظر كن وبه دستور بعدي برو
On Error GoTo Label Name ولي هميشه توصيه مي شه از حالت سمت چپ استفاده شود.در مدل
مي نويسيم Label Name ما بايد يك برچسپ به هر نامي كه مي خواهيم ايجاد مي كنيم ونام انرا به جاي
مثال
Private Sub Form_Load()
On Error GoTo MyName
Int D=12 \ 0
Exit Sub
MyName:
MsgBox "Division By Zero Is Invalid!!"
End sub
مثال ساده اي بود از رسيدگي به خطاي تقسيم بر صفر.دقت كنيد در اين برنامه هر گاه خطا اجرا شود دستورات بعداز نام برچسب اجرا مي شودو اگر عبارت
را ننويسيد در هر بار كه برنامه اجرا شود دستورات برچسب اجرا مي شود حالExit Sub
را با هم بهOn Errorچه خطا رخ دهد چه رخ ندهد. مي توانيد در يك رويداد چندين دستور
كا رببريد وبراي هر كدام يك برچسب رسيدگي درست كنيد .مي توانيد از يك برچسب براي همه استفاده كنيد و خطاها را با شماه اش تشخيص دهيد .مثال
Private Sub Form_Load()
On Error GoTo MyName
Int D=12 \ 0
Exit Sub
MyName:
select case Err.Number
Case 11: MsgBox "Division By Zero Is Invalid!!"
End Select
End sub
اطلا عات خطا را در خود نگاه ميدارد .در برنامه بالا مي توانيد هر خطا را به Errشي
عبارت شرطي اضافه كنيد.شايد شما بخواهيد با خطا از روال خارج نشويد و با يك ارور ساده برنامه به كار خود ادامه دهد
براي اينكار بايد خطي كه مي خواهيد برنامه از انجا ادامه پيدا كند را شماره گزاري كنيد يا زير يك برچسب بنويسيد واز اين
Resume LabelName Or Line Numberعبارت استفاده كنيد
بنويسيد برنامه از هرجا كه خطاResume Nextاگر اول يك خط يك شماره بنويسيد آن خط را شماره گزاري كرده ايد.اگر
نظر يادتون نره.Errشده ادامه مي دهد.توضيحات شي
|
متد/خصيصه |
نوع داده |
توضيحات |
|
Discription |
Strint |
توضيحي در مورد خطا |
|
Number |
Long |
شماره خطا- تعيين اتوماتيك |
|
Sourcee |
String |
نام فايلي كه خطا در ان رخ داده |
|
متدد ها |
- |
توضيحات |
|
Clear |
- |
پاك شدن كل خطاها |
|
Raise |
- |
فعال كردن خطا |