PDA

View Full Version : پ‍ردازش گر خطای جهانی



omidmehraban
شنبه 24 شهریور 1386, 05:05 صبح
با سلام و آرزوی قبولی عبادات:
من در مورد این موضوع جستجو کردم ولی چیزی نیافتم.
من می خوام یک ErrorHander داشته باشم تا در هر جای برنامه اگر خطایی رخ داد اون رو Handle کنه.
از کد زیر استفاده کردم.
Public Class Form1
Sub GlobalHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
MsgBox(e.ExceptionObject.ToString)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf GlobalHandler
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Integer = 2
Dim b As Integer = 0
a = a / b
End Sub
End Class

کارش رو خوب انجام می ده ولی مشکل اینجاست که بعد از نمایش پیام،برنامه به حالت دیباگ
می ره انگار اصلا ErrorHandler نداره.منظورم اینکه مثل حالت Try Catch EndTry نیست.
آیا میشه کاری کرد که بعد از نمایش پیام UnHandled Exeption گزارش نکنه؟؟
لطفا راهنمایی بفرمایید

rezaei manesh
شنبه 24 شهریور 1386, 08:44 صبح
سلام
روی my project دوبار کلیک کن
از پنجره باز شده برو در قسمت application و بعد روی گزینه view application events کلیک کن و کد زیر رو اونجا بنویس ...


Partial Friend Class MyApplication

Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.Unhandle dExceptionEventArgs) Handles Me.UnhandledException

MissageBox.ShowDialog("برای رفع مشکل با برنامه نویس تماس بگیرید" & vbCrLf & e.Exception.Message.ToString, "خطا", MessageBoxButtons.OK)
e.ExitApplication = False
End Sub
End Class

این طوری هرجا خطایی رخ بده این کد اجرا می شه و...

omidmehraban
یک شنبه 25 شهریور 1386, 09:00 صبح
با تشکر از آقای رضایی:
به این نکته نیز باید توجه داشت:

The Visual Basic compiler prevents applications that are built for debugging from raising this event, to allow a debugger to handle the unhandled exceptions. This means that if you are testing your application by running it under the Visual Studio Integrated Development Environment debugger, your UnhandledException event handler will not be called. For more information on building applications for debugging, see /debug (Visual Basic).

یعنی در زمان طراحی این Error Handler کار نمی کنه و با ید فیل exe را تست کنیم.