PDA

View Full Version : مقاله در مورد try و catch



خسرو خان
دوشنبه 10 خرداد 1389, 15:12 عصر
سلام

کسی یه مقاله مفید در مورد try و catch نداره ؟

چه فارسی باشه چه انگلیسی فرقی نداره .

ممنون

sds1920
دوشنبه 10 خرداد 1389, 16:39 عصر
مقاله خاصي نمي خواد.
بلوك هاي try catch براي مديريت خطا در برنامه استفاده مي شه.يعني براي خطاهاي زمان اجرا كه غير قابل پيش بيني هستند كه به اين جور خطاها استثناي مديريت نشده گفته مي شه(اگه اشتباه نكنم مي شه Exeption).
بلوك هاي try catch با هم استفاده مي شن يعني به اين شكل


try
{}
catch
{}


اگه اين دوتا كلمه رو براي خودت معني كني بهتر مي فهمي حالا من به طور عاميانه مي نويسم تا فميدنش راحتتر بشه :

سعي كن اگه نشد خطا رو بگير.


شما كدي رو كه احتمال مي دي خطايي توي اون رخ بده رو داخل بلوك try قرار مي دي و كد مديريت خطا رو هم در قسمت catch قرار مي دي.
معمولا كدهايي احتمال خطا دارند كه با فايلهاي خارج از فايلهاي برنامه سر و كار داشته باشند.مثلا كار كردن با ديتابيس كه بارزترين نمونه محسوب مي شه.يا ساير فايلها مثل عكس و فايل متني و آهنگ و...
كم اتفاق مي افته كه توي دستورات اصلي C#‎ مثلا تعريف متغيير يا مقدار دهي به متغييرها يا عملياتهاي محاسباتي يا ...دچار استثناي مديريت نشده بشي مگر اينكه خودت يه جايي اشتباه كرده باشي.مثلا تعريف انديس نامعتبر براي يك ليست يا آرايه يكي از اون اشتباهاتي كه ممنكه در برنامه مرتكب بشي و خطاي زمان اجرا داشته باشي.
در هر صورت كدي رو كه احتمال خطاي اون زياده و ممكنه صحت داده ها به خطر بيافته رو توي بلوك try قرار بده.
بلوك catch بلافاصله بايد بعد از بلوك try بياد والا اصلا برنامه اجرا نمي شه.
بلوك catch رو مي توني به دو صورت به كار ببري.
با پارامتر و بدون پارامتر.
بدون پارامتر مثل كد بالاست و با پارامتر مثل زير :


try
{}
catch(Exeption Ex)
{}

راستي يادم رفت كه بگم Exeption ها هم انواع مختلفي دارند كه هر كدوم براي كار خاصي استفاده مي شن.مثلا براي كار كردن با بانك داده بايد از Exeption هاي مربوط به بانك داده استفاده كني يا در كار با آرايه از Exeption هاي مربوط به خودش.توي C#‎ يك نوعي هم به نام Exeption هست كه تمام استثاناها رو شامل مي شه .اين براي زمان خوبه كه نوع استثنا كه رخ مي ده رو نمي دوني.

حالا اين Exeption ها كجا استفاده مي شن؟
گفتم كه بلوك catch رو مي توني با پارامتر يا بدون پارامتر استفاده كني.پارامتر بلوك catch همين Exeption ها هستند.
اگه catch پارامتر نداشته باشه هر استثنايي كه توي بلوك try اتفاق بيفته رو مديريت مي كنه و برنامه متوقف نمي شه.ولي اگه براي catch پارامتر مشخص كردي فقط همون Exeption ي رو كه به عنوان پارامتر مشخص كردي مديريت مي كنه.
كدهاي مديريت خطا هم به خودت بستگي داره.مثلا مي تونه يه پيغام خطا باشه.

فكر نمي كنم چيز ديگه مونده باشه.من سعي كردم همه چيز رو توضيح بدوم.اگه بازم مشكلي بود خوشحال مي شم كمكت كنم.

CYCLOPS
دوشنبه 10 خرداد 1389, 16:48 عصر
سلام

کسی یه مقاله مفید در مورد try و catch نداره ؟

چه فارسی باشه چه انگلیسی فرقی نداره .

ممنون

یادش به خیر اون موقع ها که مجوز لینک تو امضا حذف نشده بود لینکش تو امضام بود :ناراحت: (خدا از باعث و بانی اش نگذره) بی خیال داغ دلم تازه شد ؛ بگذریــــــــم :گریه:
لینکش رو این زیر برات گذاشتم داداشم امیدوارم برات مفید باشه :چشمک:


یه مقاله مختصر در مورد Exception ها (http://barnamenevis.biz/forum/showthread.php?t=154472)

misoft.ir
دوشنبه 10 خرداد 1389, 17:05 عصر
سلام

فكر نمي كنم چيز ديگه مونده باشه
دوست عزیز خیلی خوب توضیح دادید ولی هنوز خیلی موارد را شما نگفتید.
من برای اینکه این دوستمون بعد از خوندن پست شما و آشنایی ایشان با این بلوک بدونه که از کجا باید ادامه بده من چند موردی رو که بلدم و خوشبختانه همه اون ها در این تالار بحث شده رو به صورت تیتر وار بیان میکنم.

-هر بلوک try رو میتونید با چند تا بلوک catch استفاده کنید که در این صورت ترتیب مدیریت خطا بسیار مهم و به صورت ترتیبی هست.

-یکی دیگر از موارد پر کاربرد در این بلوک شماره خطایی [Error number]است که برمیگردونه که با این روش شما میتونید تشخیص بدید که اشکال مربوط به کدوم خطاست.

-Exeption متودها و خاصیت هایی نیز داره که بررسی اونها خالی از لطف نیست.

-همراه بلوک try catch میتوان از بلوک finally نیز استفاده کرد.

__________________________________________________ _____________________________
پ ن : استفاده بهینه از بلوک try catch مستلزم شناخت مناسب از Exeption هایی است که در هر عملیات رخ میدهند و پیش بینی آنها خیلی مفید است.