PDA

View Full Version : چطوری میشه یک try catch برای handle تمام error های روی فرم گذاشت ؟



ir_ali_s
یک شنبه 23 اردیبهشت 1386, 15:29 عصر
چطوری میشه یک try catch برای handle تمام error های روی فرم گذاشت که مجبور نباشیم برای تک تک event های روی فرم try catch بزاریم

Microsoft.net
یک شنبه 23 اردیبهشت 1386, 21:11 عصر
برای این کار باید روی پروژه کلیک راست کنی و آخرین گزینه رو انتخاب کنی بعد فرمی نشون داده میشه که تو یه قسمت نوشته application event اونو که بزنی میتونی unhandled execption رو انتخاب کنی و کدتو بنویسی حالا هرجای برنامه خطای runtime رخ بده میاد توی این event

ir_ali_s
دوشنبه 24 اردیبهشت 1386, 11:23 صبح
سلام
من امتحان کردم نشد

__H2__
دوشنبه 24 اردیبهشت 1386, 13:18 عصر
سلام
مسیر زیر را به دقت دنبال کنید
Project->ProjName Property...->Appilication->View Application Events

در قسمت کد نویسی باز شده برای رویداد MyApplication_UnhandledException کد نویسی کنید.

ir_ali_s
سه شنبه 25 اردیبهشت 1386, 10:56 صبح
Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.Unhandle dExceptionEventArgs) Handles Me.UnhandledException
Try

Catch exxx As Exception
MsgBox(exxx.Message)
Catch exx As Exception
MsgBox(exx.Message)
End Try
End Sub

__H2__
سه شنبه 25 اردیبهشت 1386, 12:51 عصر
سلام
بدون شک این کد جواب نمیدهد!!!!
نباید از دستور Try استفاده کنید، خطا هندلر شده و چیزی وجود ندارد که شمات بخواهید آن را هندلر کنید؟!؟!؟!؟!!؟
مقدار
e.Exception شامل کلاسس خطا و توضیحات آن است و مقدار e.ExitApplication مشخص میکند که در برابر این خطا برنامه بسته شود (پایان یابد) یا خیر.
شما باید در این رویه با یک Message مناسب کاربر را مطلع کنید و در صورت نیاز آن را در فایلی ثبت کنید تا بعداً کاربر یا خود برنامه بتواند آنرا به نحوی به شما (مثلاً با اینترنت) اطلاع دهد تا در رفع آن اقدام کنید و با توجه به نیازتان مقدار e.ExitApplication را هم تنظیم کنید.

البته تاکید میکنم که این روش به هیج وجه نباید جایگزین استفاده از Try در برنامه شود، شما باید تا حد امکان تمام جوانب را پیشبینی کنید و Try مربوطه را در محل قرار داده و خطا را هندلر کنید و کار مناسب و پیغام مناسب به کاربر را آنجا سازمان دهید، این روش صرفاً اخرین تیر در کمان بر ای جلوگیری از آبروریزی و بسته شدن ناگهانی برنامه است.

Microsoft.net
سه شنبه 25 اردیبهشت 1386, 15:18 عصر
نکته ای که یادم رفت بگم اینه که e.ExitApplication رو برابر False قرار دهید

ascpro
چهارشنبه 26 اردیبهشت 1386, 00:56 صبح
سلام.
آقا شما خطائی که بهت میده رو که داخل دو تا تک کوتیشن یا به این صورت است ' ' کپی کن و بعد تو catch بزار. به صورت زیر:


try
catch ex as 'خطای مورد نظر '
catch ex as 'خطای مورد نظر '
end try

اینطوری هیچ مشکلی هم نداری.
موفق باشی.