تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 15

نام تاپيک: یه سوال ساده اما کاربردی از بلوک Try...Catch

  1. #1
    آخر فروم باز H A M A S's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    3,294

    پيش فرض یه سوال ساده اما کاربردی از بلوک Try...Catch

    سلام
    مثلا فرض کنیم یه برنامه ساده تقسیم نوشتیم که کاربر 2 تا عدد را وارد میکنه و برنامه ما عدد اول رو بر عدد دوم تقسیم میکنه

    حالا اگر کاربر بیاد عدد اول رو مثلا 8 بزاره ---عدد دوم رو 0 -- اگر از try...catch استفاده کرده باشیم خطای محاسبات ریاضی میگره

    اما اگر کاربر عدد دوم که 0 هست تصحیح کنه و بزاره مثلا 2 بازم همون خطای مربوط به محاسبات رو میگیره!
    مگر این که برنامه دوباره اجرا بشه!
    راه حلش چیه که اگر کاربر اطلاعات غلط رو تصحیح کرد برنامه خطای قبلی رو نگیره؟؟

  2. #2
    اگه نباشه جاش خالی می مونه Mr.reCoder's Avatar
    تاريخ عضويت
    Jan 2008
    محل سكونت
    Binary Land
    پست ها
    236

    پيش فرض

    منظورتون از تصحیح دوباره چیه؟ چه طوری تصحیح میکنه؟

  3. این کاربر از Mr.reCoder بخاطر این مطلب مفید تشکر کرده است


  4. #3
    آخر فروم باز H A M A S's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    3,294

    پيش فرض

    منظورتون از تصحیح دوباره چیه؟ چه طوری تصحیح میکنه؟
    به این واضحی بود!!

    تقسیم بر صفر معنا نداره
    کاربر میاد عدد دوم که مقسوم علیه هست رو صفر وارد میکنه
    برنامه با استفاده از try...catch خطا میده
    کاربر متوجه میشه اطلاعات رو غلط وارد کرده میاد توی فرم مقسوم علیه رو که صفر وارد کرده رو تصحیح میکنه و یه عدد غیر صفر میزاره
    اما برنامه هنوز همون خطای تقسیم بر صفر رو میگیره!!
    این یه مثال بود برای تفهیم مطلب!!!
    مثال های دیگه:وارد کردن کلید تکراری و.....

  5. #4
    اگه نباشه جاش خالی می مونه IP007's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Esfahan
    پست ها
    482

    پيش فرض

    شما کدتون رو بذارید اشکال از کد ه ...

  6. این کاربر از IP007 بخاطر این مطلب مفید تشکر کرده است


  7. #5
    پروفشنال srh124's Avatar
    تاريخ عضويت
    Sep 2005
    محل سكونت
    ايران زیبا
    پست ها
    602

    پيش فرض

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

  8. این کاربر از srh124 بخاطر این مطلب مفید تشکر کرده است


  9. #6
    آخر فروم باز H A M A S's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    3,294

    پيش فرض

    شما کدتون رو بذارید اشکال از کد ه ...
    من که نگفتم برنامه خرابه منظورم این بود چه طوری میشه دقیق استثناها رو رگفت و برطرف کرد اینم یه نمونه کد
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اما اگر کاربر بیاد شماره شناسایی کاربر رو بعد از اخطار توسط برنامه تصحیح کنه بازم دستورات داخل بلوک catch اجرا میشه!!
    یعنی بازم خطا میگیره!
    خب عزیز بار اول که خطاگیری انجام شد برنامه از بلوک try catch خارج میشه
    برای بار دوم هم روز از نو روزی از نو. چون خطایی وجود نداره درنتیجه برنامه وارد قسمت ctach نمیشه
    نه اینجوری که نوشتم مدام دستورات داخل بلوک catch اجرا میشن!!

  10. این کاربر از H A M A S بخاطر این مطلب مفید تشکر کرده است


  11. #7
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

    راه حلش چیه که اگر کاربر اطلاعات غلط رو تصحیح کرد برنامه خطای قبلی رو نگیره؟؟
    سلام.
    من همچین خطایی رو ندیدم....
    اگه میشه یه نمونه بذارید...
    هنگام اجرا شدن کدها یا خطا وجود داره یا نداره....اگه وجود داشت که خوب خطا میده....دور بعد که تصحیح شد چرا باید خطا بده؟

  12. این کاربر از عــــلی بخاطر این مطلب مفید تشکر کرده است


  13. #8
    آخر فروم باز H A M A S's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    3,294

    پيش فرض

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

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    لیدیز اند جنتلمن!!

    اگر کاربر بیاد کد راننده رو توی فرم موقع ثبت نام تکراری بزنه برنامه خطا میگیره و به کاربر شیر فهم میکنه باید کد راننده رو عوض کنی و یه کد غیر تکراری بدی!!!
    کاربر هم میاد یه کد غیر تکراری میده!!!اما برنامه که هنوز توی بلوک catch مونده پیغام میده کد راننده تکراری هست!!
    باید یه جوری از بلوک catch بعد از خطا گیری اول بیاد اول try

  14. #9
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

    حالا اگر کاربر بیاد عدد اول رو مثلا 8 بزاره ---عدد دوم رو 0 -- اگر از try...catch استفاده کرده باشیم خطای محاسبات ریاضی میگره

    اما اگر کاربر عدد دوم که 0 هست تصحیح کنه و بزاره مثلا 2 بازم همون خطای مربوط به محاسبات رو میگیره!
    مگر این که برنامه دوباره اجرا بشه!
    اما اگر کاربر بیاد شماره شناسایی کاربر رو بعد از اخطار توسط برنامه تصحیح کنه بازم دستورات داخل بلوک catch اجرا میشه!!
    اگر کاربر بیاد کد راننده رو توی فرم موقع ثبت نام تکراری بزنه برنامه خطا میگیره و به کاربر شیر فهم میکنه باید کد راننده رو عوض کنی و یه کد غیر تکراری بدی!!!
    سلام دوست عزیز...
    برای سریعتر به جواب رسیدن بهتره تمام تلاشتون رو انجام بدین که مفهوم رو به بهترین شکل برسونین...
    شما خودتون یه نگاه به چیزایی که گفتین بندازین ببینید درک کدومش راحت تره؟
    -----------
    من توی کدی که شما دادین مشکلی نمیبینم....
    تاحالا ندیدم که توی catch بمونه....بعد از بسته شدن MessageBox متد کاملاً بسته میشه.
    از try باید در مواردی استفاده کنید که نمیدونید که چه خطایی احتمال داره به وجود بیاد.
    ولی اگه میدونید و میتونید پیشگیری کنید بهتره همون کار رو انجام بدید به نظرم در این موارد استفاده از try راه مناسبی نیست.و جلوی سرعت محاسبات رو میگیره.

  15. این کاربر از عــــلی بخاطر این مطلب مفید تشکر کرده است


  16. #10
    آخر فروم باز H A M A S's Avatar
    تاريخ عضويت
    May 2006
    پست ها
    3,294

    پيش فرض

    سلام دوست عزیز...
    برای سریعتر به جواب رسیدن بهتره تمام تلاشتون رو انجام بدین که مفهوم رو به بهترین شکل برسونین...
    شما خودتون یه نگاه به چیزایی که گفتین بندازین ببینید درک کدومش راحت تره؟
    -----------
    من توی کدی که شما دادین مشکلی نمیبینم....
    تاحالا ندیدم که توی catch بمونه....بعد از بسته شدن MessageBox متد کاملاً بسته میشه.
    از try باید در مواردی استفاده کنید که نمیدونید که چه خطایی احتمال داره به وجود بیاد.
    ولی اگه میدونید و میتونید پیشگیری کنید بهتره همون کار رو انجام بدید به نظرم در این موارد استفاده از try راه مناسبی نیست.و جلوی سرعت محاسبات رو میگیره.
    خب این شد یه چیزی!!
    خواستم با بیان مثال بگم که درکش راحتر بشه اما مثل این که بدتر شد!!
    بعد از اوکی کردن مسیج باکس در هر صورت بازم خطا میگیره!!شما خودت امتحان کن!!البته به این صورتی که من نوشتم!
    ================================================== ===========
    خب پیشنهاد شما چیه برای رفع خطاهایی که احتمالشون رو میدیم؟؟
    چون اونهایی که پیش بینی نشده رو به قول شما با catch میگیریم!!
    Last edited by H A M A S; 08-08-2011 at 13:06.

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •