PDA

View Full Version : مشكل با دستور try catch



mohsenm66
چهارشنبه 31 شهریور 1389, 16:33 عصر
من در برنامه ام يه دستور for each دارم كه به ازاي تك تك منوهاي فرم ميخواهم اين حلقه تكرار شود و براي كنترل خطا يك دستور try catch قرار داده ام ولي ميخواهم هنگام برخورد با يك خطا از تابع خارج نشود و به سراغ دستور بعدي برود يعني به ازاي تمام اجزا در حلقه اين دستور اجرا شود .
اگر كسي ميتونه راهنمايي كنه ممنون ميشم .

غلامرضا شریفی
چهارشنبه 31 شهریور 1389, 18:03 عصر
از دستور براي كنترل خطا مورد استفاده قرار ميگيرد
on error go to

Rezahak
چهارشنبه 31 شهریور 1389, 20:36 عصر
دستور try...catch را یک chain ببر پایین تر یعنی به جای اینکه خارج از for..each باشه ببرش داخل اون ، دراین صورت اگر خطا رخ دهد به سراغ حلقه بعد می رود

xminxmin
چهارشنبه 31 شهریور 1389, 23:32 عصر
سلام دوست من
قبل از دستور مشكوك به ايجاد خطا اين كد رو بنويس. ميتوني ساختار try...catvh رو هم اگر لازم نيست حذف كني


On Error Resume Next

Saman_12
چهارشنبه 31 شهریور 1389, 23:55 عصر
سلام دوست من
قبل از دستور مشكوك به ايجاد خطا اين كد رو بنويس. ميتوني ساختار try...catvh رو هم اگر لازم نيست حذف كني


On Error Resume Next

هیچ وقت این دوتا دستور رو نمیشه کنار هم استفاده کرد یعنی شما یا از Try استفاده میکنی یا از ON Error.
پس حتی اگه نخواد هم باید دستور Try رو حذف کنه!
در ضمن بهتره این کد اولین کد درون یک Sub باشه.(دلیلی برای این حرف ندارم اما این جوری یاد مون دادند.)

xminxmin
پنج شنبه 01 مهر 1389, 08:17 صبح
هیچ وقت این دوتا دستور رو نمیشه کنار هم استفاده کرد یعنی شما یا از Try استفاده میکنی یا از ON Error.
پس حتی اگه نخواد هم باید دستور Try رو حذف کنه!
در ضمن بهتره این کد اولین کد درون یک Sub باشه.(دلیلی برای این حرف ندارم اما این جوری یاد مون دادند.)

ممنون از تذکر شما.
اما منظور من هم این نبود که درون ساختار باشه.
اما در مورد جای خط کد:
در کل بهتره از On Error Goto Label استفاده کرد نه از Resume Next
اما اگر هم استفاده می کنی بهتره قبل از دستور یا دستورات تولید کننده خطا باشه چون شما که نمی دونی بقیه دستورات خطا ایجاد می کنند یا نه! و اگر تولید کنند آیا مدیریت خاصی لازم دارند یا نه! وقتی بگذاری اول قطعه کد اونوقت دیگه برای خطاهایی که پیش بینی نکردی هم مشکل پیش میاد و نمی تونی بفهمی اصلا اون ها رو!