# Native Code > برنامه نویسی در 6 VB > کامپوننت ها و ابزارهای کاربردی در VB6 >  کنترل تمامی پیغام های خطا

## Dr.Bronx

سلام
در قسمت زیر یک ماژول رو مشاهده می کنید که با اون می تونید تمام خطاهایی که ممکنه در برنامه شما رخ بده رو کنترل کنید و یک Log از اون با برچسب تاریخ ، ساعت ، نام فرم و شرح و شماره خطا داشته باشید . مانند عکس زیر :



طرز تهیه :  :لبخند گشاده!: 

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



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


ماژول کامل دارای بیش از : 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
> تقسیم بر صفر امکان پذیر نیست .


و حتما داخل تگ نقل قول () قرار بدید

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

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

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

----------


## mpmsoft

نیازی نیست کد خطاهارو چک کنید
Err.Description Err.Number

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

----------


## xxxxx_xxxxx

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


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

----------


## mpmsoft

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


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

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

----------


## shahmahi

ببخشید مابین بحثتون پریدم وسط . :چشمک: 

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

----------


## xxxxx_xxxxx

سلام،
فایل رو مجدد دانلود کنید، اصلاح شد.
فایل قبلی اشتباه ضمیمه شده بود. :گیج: 




> کدهای خطای دوستمون هم فارسی نیست !!!


متن انگلیسی به جهت ترجمه قرار گرفته.



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


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

----------


## hossein_sh2008

با سلام
اگه كسي داره تمام خطاهاي زبان وي بي رو به زبان فارسي در اختيار همه بگذاره :قلب:

----------

