PDA

View Full Version : کنترل تمامی پیغام های خطا



Dr.Bronx
شنبه 14 آذر 1388, 12:53 عصر
سلام
در قسمت زیر یک ماژول رو مشاهده می کنید که با اون می تونید تمام خطاهایی که ممکنه در برنامه شما رخ بده رو کنترل کنید و یک Log از اون با برچسب تاریخ ، ساعت ، نام فرم و شرح و شماره خطا داشته باشید . مانند عکس زیر :

http://barnamenevis.org/forum/attachment.php?attachmentid=40728&stc=1&d=1078972808

طرز تهیه : :لبخند:

اول یک ماژول به پروژه خودتون اضافه کنید و کدهای زیر رو داخل اون پیست کنید .



.:: به علت محدودیت تایپ کاراکتر ماژول کامل را از ضمیمه دانلود نمایید ::.


ماژول کامل دارای بیش از : 870 خطای مختلف می باشد.



Public Sub ErrHandler(FrmName As String)
Select Case Err.Number

Case 3
MsgBox "Return without GoSub", vbCritical, "خطا"
'------------------------------------------------

Case 5
MsgBox "Invalid procedure call", vbCritical, "خطا"
'------------------------------------------------

Case 6
MsgBox "Overflow", vbCritical, "خطا"
'------------------------------------------------

Case 7
MsgBox "Out of memory", vbCritical, "خطا"
'------------------------------------------------

Case 9
MsgBox "Subscript out of range", vbCritical, "خطا"
'------------------------------------------------

'...
'...
'...

Case Else
MsgBox Err.Description, vbCritical, "خطا"

End Select

Open App.Path + "\Log.log" For Append As #1
Print #1, "[" & Date$ & "] - [" & Time$ & "] ~" & FrmName & "~ | " & Err.Number & SPACE(2) & "*" & SPACE(2) & Err.Description
Close #1

Err.Clear
End Sub

حالا توی هر سابی که دارید باید کدهای زیر رو اضافه کنید .


On Error GoTo Err_Handle

'اینجا دستورات شما قرار داره.

Exit Sub
Err_Handle:
ErrHandler Me.Name


خوب حالا خاصیت این کار چیه ؟ چون ما می تونیم مثل قبل از همون err.description استفاده کنیم.

پیغام خطاهای این ماژول داریم فارسی می کنیم و می تونید برای تمام پیغامها به کاربر پیغام خطا نشون بدین.

هر کدوم از دوستان هم که خواست کمک کنه در خدمتشون هستیم :بامزه:

مثلا اینطوری ترجمه کنید :

شماره خطا
شرح خطا به فارسی

اینطوری :


11
تقسیم بر صفر امکان پذیر نیست .
و حتما داخل تگ نقل قول (http://barnamenevis.org/forum/images/editor/quote.gif) قرار بدید

لطفا از ارسال پست های بی محتوا و خارج از بحث تاپیک شدیدا خودداری نمایید.

در انتهای کار وقتی که پیغام ها فارسی شد یک Dll ساخته میشه تا همه بتونن از اون استفاده کنند .

موفق و موید باشید ./

mpmsoft
شنبه 14 آذر 1388, 14:07 عصر
نیازی نیست کد خطاهارو چک کنید

Err.Description Err.Number

توسط کد بالا می تونید هم کد خطارو بدست بیارید و هم متن پیغام خطا رو

xxxxx_xxxxx
شنبه 14 آذر 1388, 14:57 عصر
نیازی نیست کد خطاهارو چک کنید

Err.Description Err.Numberتوسط کد بالا می تونید هم کد خطارو بدست بیارید و هم متن پیغام خطا رو

درسته، ولی هدف فارسی کردن پیغام های خطا به همراه لاگ گرفتن از اونها در برنامه های فارسی هست.

mpmsoft
شنبه 14 آذر 1388, 15:07 عصر
درسته، ولی هدف فارسی کردن پیغام های خطا به همراه لاگ گرفتن از اونها در برنامه های فارسی هست.

کدهای خطای دوستمون هم فارسی نیست !!!
فقط یک وقتی گذاشتن و پیغام خطا هارو به انگلیسی تایپ کردن که نیازی به کار نبود

این خطاها تقریبا 10% از خطاهایی هست که ممکن هست در برنامه رخ بده
به هر حال با هاتون موافقم ولی به نظر کامل کردن و استفاده کردن ازش بر می گرده خود برنامه نویس (متناسب با پروژه و خطاهای احتمالی)

shahmahi
شنبه 14 آذر 1388, 15:50 عصر
ببخشید مابین بحثتون پریدم وسط .:چشمک:

آقا من برای مثال همون خطای تقسیم بر صفر رو طبق اون چیزی که شما گفتی امتحان کردم ولی vb پیغام object required رو داد بعد اسم فرمی رو که خطا توش رخ داده بود رو به MainPage تغییر دادم بعد به Errmsg گیر داد. چرا ؟

xxxxx_xxxxx
شنبه 14 آذر 1388, 16:10 عصر
سلام،
فایل رو مجدد دانلود کنید، اصلاح شد.
فایل قبلی اشتباه ضمیمه شده بود.:گیج:


کدهای خطای دوستمون هم فارسی نیست !!!
متن انگلیسی به جهت ترجمه قرار گرفته.

فقط یک وقتی گذاشتن و پیغام خطا هارو به انگلیسی تایپ کردن که نیازی به کار نبود
پیغام خطاها آماده بوده فقط در داخل یک Select Case بر اساس شماره خطا قرار گرفته و در نهایت در یک ماژول به همراه دستوراتی جهت لاگ گرفتن جمع آوری شده.

hossein_sh2008
سه شنبه 04 اسفند 1388, 21:36 عصر
با سلام
اگه كسي داره تمام خطاهاي زبان وي بي رو به زبان فارسي در اختيار همه بگذاره:قلب: