PDA

View Full Version : سوال: چظور میتونم پیغام خطایی شبیه به این بسازم؟



Mosafers
پنج شنبه 13 تیر 1392, 15:44 عصر
سلام یکی از دوستان خطا ها رو به این شکل مدیریت کرده بود من به چه شکل میتونم این خطا ها رو مدیریت و پیغام مشخص نمایش بدم خواهش میکنم ساده راهنماییم کنید...

مثل بگه : sql نصب نیست.
.Net Framework نصب نیست.
و...

aghayex
پنج شنبه 13 تیر 1392, 17:51 عصر
دوست عزیز در این برنامه کار خاصی انجام نداده فقط اومد یه فرم طراحی کرده که شامل دو بخش هست بخش اول همون کاراکتر های فارسی هست که می تونه ثابت باشه و در بخض دوم که کاراکتر های انگلیسی ها و متغیر هست بعد در هر جای برنامه که خطایی رخ می ده خطا رو از در try catch می گیره و به این فرم میفرسته و فرم رو showdialog می کنه

Mosafers
پنج شنبه 13 تیر 1392, 21:05 عصر
سلام بله اینها خطا های ثابت هستند ولی من میخوام برای مواردی که اشاره کردم خطای ترجمه شده ایجاد کنم...


مثل بگه : sql نصب نیست.
.Net Framework نصب نیست.

aghayex
پنج شنبه 13 تیر 1392, 23:21 عصر
دوست عزیز خطا یابی این دو پیغام کار راحتی هست اما اگه می خواهی برنامت از نظر خطا یابی در سطح بالایی باشه باید روی مبحثی به نام اعتبار سنجی ( validation ) کار کنی در اونجا می تونی تعیین کنی که برا هر اشتباهی که کاربر مرتکب میشه چه پیغام فارسی صادر بشه

Mosafers
پنج شنبه 13 تیر 1392, 23:37 عصر
میشه خواهش کنم برام یه مثال بزنید؟
و فکر میکردم validation برای اعتباز سنجی فیلد ها باشه...

aghayex
جمعه 14 تیر 1392, 09:51 صبح
فکر میکردم validation برای اعتباز سنجی فیلد ها باشه

درسته . مگه خطا چطور ایجاد میشه ؟
یا کاربر اطلاعاتی که وارد می کنه طبق قالب و استاندارد ما نیست
و یا برنامه می خواد از یه سرویس استفاده کنه اما وجود نداره

mahdi_7610
جمعه 14 تیر 1392, 11:07 صبح
دوست عزیز اگر شما خطاها را از داخل اسکیوال سرور و در قالب stored procedure ها مدیریت کنی ، اونوقت هر موقع خطایی توی برنامه ات رخ بده ، اسکیوال سرور با استفاده از ()ERROR_NUMBER و ()ERROR_MESSAGE شماره خطا و متن خطا را واست ارسال میکنه و شما می تونید با استفاده از شماره خطای داده شده پیغام مناسب را به کاربر نمایش بدی.

Mosafers
جمعه 14 تیر 1392, 11:29 صبح
دوست عزیز اگر شما خطاها را از داخل اسکیوال سرور و در قالب stored procedure ها مدیریت کنی ، اونوقت هر موقع خطایی توی برنامه ات رخ بده ، اسکیوال سرور با استفاده از ()ERROR_NUMBER و ()ERROR_MESSAGE شماره خطا و متن خطا را واست ارسال میکنه و شما می تونید با استفاده از شماره خطای داده شده پیغام مناسب را به کاربر نمایش بدی.

دقیقا من همین روش رو میخوام میشه خواهش کنم یه مثال بزنید ...

Sal_64
جمعه 14 تیر 1392, 12:21 عصر
دوست عزیز اگر شما خطاها را از داخل اسکیوال سرور و در قالب stored procedure ها مدیریت کنی ، اونوقت هر موقع خطایی توی برنامه ات رخ بده ، اسکیوال سرور با استفاده از ()ERROR_NUMBER و ()ERROR_MESSAGE شماره خطا و متن خطا را واست ارسال میکنه و شما می تونید با استفاده از شماره خطای داده شده پیغام مناسب را به کاربر نمایش بدی.
علاوه بر موارد فوق
کم نیست خطاهایی که به دلیل عدم دسترسی به بانک و امثالهم به وقوع می پیونده ، که اینها باید در سمت برنامه مورد بررسی قرار بگیره

Mosafers
جمعه 14 تیر 1392, 12:44 عصر
علاوه بر موارد فوق
کم نیست خطاهایی که به دلیل عدم دسترسی به بانک و امثالهم به وقوع می پیونده ، که اینها باید در سمت برنامه مورد بررسی قرار بگیره

سلام ؛ بله منظور منم همیناست لطفا یکی یه مثال بذاره..........................

Arash_janusV3
جمعه 14 تیر 1392, 18:30 عصر
dll های آماده ای وجود داره که اطلاعات کامل تری رو در اختیار می گذاره
مثل شماره خط ، نام فرم ، مراحل خطا و ...
نمونش VC البته مخفف هستش ولی در نت پیدا می شه
من هم دسترسی به این dll ندارم
شما خودتون هم می تونید ex رو مدیریت کنید و با شرط گذاری پیغام فارسی رو نمایش بدید

a1053r
جمعه 14 تیر 1392, 19:05 عصر
این بنده خدا رو دور نکنین از جوابش دوست من
برو تو msdn
این رو سرچ کن SmoApplication بت کدها رو میده sql یا framework

Mosafers
جمعه 14 تیر 1392, 19:50 عصر
dll های آماده ای وجود داره که اطلاعات کامل تری رو در اختیار می گذاره
مثل شماره خط ، نام فرم ، مراحل خطا و ...
نمونش VC البته مخفف هستش ولی در نت پیدا می شه
من هم دسترسی به این dll ندارم
شما خودتون هم می تونید ex رو مدیریت کنید و با شرط گذاری پیغام فارسی رو نمایش بدید
ممنونم یه سرچ کردمچیزی پیدا نشد شاید بدردم خورد...


این بنده خدا رو دور نکنین از جوابش دوست من
برو تو msdn
این رو سرچ کن SmoApplication بت کدها رو میده sql یا framework
بله منظور من همینه ولی SmoApplication برای MSDN من معنی نداشت ! توی نت پیدا شد ولی چیز گنگیه

a1053r
یک شنبه 16 تیر 1392, 02:36 صبح
دوست عزیز msdn انلاین رو میگم نه اونی که رو سیستم نصب کردی

Sal_64
یک شنبه 16 تیر 1392, 15:12 عصر
دقیقا من همین روش رو میخوام میشه خواهش کنم یه مثال بزنید ...
شما می تونید تمام خطاهای مدیریت نشده برنامه توسط قرار دادن تکه کدی در کلاس program مدیریت کنید و با گرفتن Message و StackTrace آن پیغام نمایش بدین

//بررسی خطاهای هندل نشده
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadExce ption);
البته نمایش پیغام خطا طولانی آنهم به زبان لاتین مشکلی از کاربر مرتفع نمیکنه ،
پس دو کار باید انجام بشه
اول اینکه : ذخیره متن خطا در بانک داده (البته اگه خطا بدلیل در دسترس نبودن بانک باشه ذخیره متن خطا در فایل تکست)
و مورد دوم امکان ذخیره متن خطا در فایلی متنی و قابلیت هایی مانند پرینت (جهت فکس) و اگر سیستم کاربر متصل به اینترنتباشه ارسال متن خطا به ایمیل شماست

--
با این شیوه دیگه نیازی به تماس های طولانی کاربر جهت توضیح ناقص خطا نیست!

samadblaj
یک شنبه 16 تیر 1392, 18:26 عصر
سلام کامپوننتی برای این کار وجود داره ولی بهترین روش استفاده از روش دوست خوبمون sal_64 هستش...

Mosafers
یک شنبه 16 تیر 1392, 18:32 عصر
شما می تونید تمام خطاهای مدیریت نشده برنامه توسط قرار دادن تکه کدی در کلاس program مدیریت کنید و با گرفتن Message و StackTrace آن پیغام نمایش بدین

//بررسی خطاهای هندل نشده
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadExce ption);
البته نمایش پیغام خطا طولانی آنهم به زبان لاتین مشکلی از کاربر مرتفع نمیکنه ،
پس دو کار باید انجام بشه
اول اینکه : ذخیره متن خطا در بانک داده (البته اگه خطا بدلیل در دسترس نبودن بانک باشه ذخیره متن خطا در فایل تکست)
و مورد دوم امکان ذخیره متن خطا در فایلی متنی و قابلیت هایی مانند پرینت (جهت فکس) و اگر سیستم کاربر متصل به اینترنتباشه ارسال متن خطا به ایمیل شماست

--
با این شیوه دیگه نیازی به تماس های طولانی کاربر جهت توضیح ناقص خطا نیست!
سلام بخشید آقای Sal_64 دقیقا همین چیزی بود که من نیاز داشتم خواهش میکنم بیشتر توضیح بدید من چگونه باید این روش رو پیاده کنم فقط لطف کنید قسمت هایی از کد رو بهم توضیح بدید... نکته خوبی هم اشاره کردید من پیغام خطا ها رو به ایمیلم توسط نرم افزار ارسال میکنم چون نرم افزار روی خط کار میکنه...

فقط لطف کنید اگه نمونه خارجی یا کد بیشتر برای کمک دارید قرار بدید اصلا نمیدونم باید چیکار کنم چند روز هم هست کسی پاسخ درستی به پرسشم نداده...

Sal_64
یک شنبه 16 تیر 1392, 20:38 عصر
سلام بخشید آقای Sal_64 دقیقا همین چیزی بود که من نیاز داشتم خواهش میکنم بیشتر توضیح بدید من چگونه باید این روش رو پیاده کنم فقط لطف کنید قسمت هایی از کد رو بهم توضیح بدید... نکته خوبی هم اشاره کردید من پیغام خطا ها رو به ایمیلم توسط نرم افزار ارسال میکنم چون نرم افزار روی خط کار میکنه...

فقط لطف کنید اگه نمونه خارجی یا کد بیشتر برای کمک دارید قرار بدید اصلا نمیدونم باید چیکار کنم چند روز هم هست کسی پاسخ درستی به پرسشم نداده...

سلام
شما اگه بتونید در گام اول از امکان جستجو همین سایت و بعد از اون از سایت codeproject و همینطور google برای جواب سوالهاتون استفاده کنید
قطعا خیلی سریعتر به جواب می رسید و گاها نیاز به روزها صبر برای پاسخ دوستان که این روزها کمی مشکلات اقتصادی خلقشان را تنگ کرده و کمتر زکات علم میدهند (برگرفته ار پروفایل دوست خوبمون samadblag )نخواهید داشت

این لینک ببینید (http://barnamenevis.org/showthread.php?363749-%D8%B9%D8%AF%D9%85-%D9%85%D8%B4%D8%AE%D8%B5-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AE%D8%B7-%D9%88-%D9%85%D8%AA%D9%86-error-%D8%AF%D8%B1-vs-%D9%88-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D9%BE%DB%8C%D8%BA%D8%A7%D9%85-%D8%AE%D8%B7%D8%A7%DB%8C-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D9%88-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B3%D8%AA%D9%86-%D9%BE%D8%B1%D9%88%DA%98%D9%87&highlight=ThreadException)

Mosafers
دوشنبه 17 تیر 1392, 00:56 صبح
Sal_64 ممنونم به خاظر توجهتون...