کمپيوټر, پروګرام
جاوا: استثنا او د هغوی اداره
هر پروګرام به stably فعالیت یوازې که سرچينه کوډ ده debugged، او نه شرایط چې کولای شي مترقبه حالاتو لامل دي. د ممکنه ناکامۍ نيولو پروسه پر پروګرامونو پړاو ترسره شي. د دې، د پراختیا د په پام کې د ټولو د پام وړ پالې اخلي او هڅه کوي چې د غلطۍ د اغېز محدود کړي چې دا به د پروګرام په عملیاتو کې لاسوهنه نه کوي، او يا خپل د سقوط سبب.
کله چې تاسو ښايي استثنا کارولو ته اړتيا لري
په جاوا، استثنا کولای ناسم کارونکي آخذه له امله رامنځته شي، د یوې سرچینې یا ناڅاپي شبکې د مرآز پروګرام لپاره اړتيا نشته. د راحت استعمال جوړ د غوښتنلیک د پراختیا له خوا، تاسو باید د بیړنیو حالاتو د رامنځته کنټرول. د مصرف باید نه لري چې انتظار ته یو غوښتنلیک پرېښوده، چې په توګه د یو unhandled استثنا، او یا یوازې د یو پیغام برخه ښکاري چې څه ناسم په پایله کې د معلوماتو له لاسه ورکړي.
جاوا استثنا سمبالولو
څه په پام کې؟ د جاوا ژبې د خپلو جوړ په استثنا کارولو فعالیت لري. البته، د تیروتنې یو لوی سلنه له خوا بل تصنيف پړاو کې نښتی دی، دا سيستم به په اتوماتيک ډول خبر ورکړي چې د استعمال دا نور امکان نه لري. خو د استثنا په دې ډول چې په چلولو واقع ده. د د پراختیا باید وي چې اټکل دا او د کوډ سره طرح نو دا یوه تېروتنه سبب نه، او په یوه ځانګړې لاره وشی دا او بل ښاخ ته سپارل.
په جاوا، دا د compiler له خوا تحمیل ته يوه استثنا ونيسي، نو د عادي ستونزو په توګه پېژندل شوي او یو معیاري تمرین نمونې لري.
عادی استثنائات
ساده مثال په توګه، په کوم کې چې تاسو يوه استثنا ترلاسه کولای شي - د دې فرقې. خپل ساده سره سره، په اصطلاح، د يو وېشلې، کیدای شي د صفر، چې دا به په یوه تېروتنه سبب شي. ښه د تېرو د راڅرګندېدو وړاندوینه، که دا ممکنه ده او مخنیوی وکړي. خو دا انتخاب تل موجود نه دی، له دې امله په استثنا نيولو باید د په صورت کې په مستقیم ډول د "وېش له خوا صفر" تنظیم شي.
د جاوا ميکانيزم intercept پروسس تېروتنې د دې په څېر ښکاري:
- ډېرۍ استثنا څيز دی جوړ، او همدارنګه د نورو په توګه؛
- د پروګرام د طبیعي کورس دی د ځند سره؛
- جالوالی د میکانیزم هڅه کوي چې د یو بدیل په لاره چې د کوډ دوام ومومي؛
- په پروسسر، د کار د پروګرام یو خوندي اعدام موندل او يا بېرته، او يا په يوه ځانګړې لاره به د استثنا تحقق واقع کيږي.
د یوه تېروتنه رامنځته کېدای شي د دې په شان ښکاري، ساده مثال په توګه:
که (یو == په صادرېدو سره)
غورځوي نوي NullPointerException ()؛
دلته، د متحول په initialization وکتل ده، يعنې د، نه ده چې ایا د یو مردود څيز مرجع. که دا وضعه کې د راپاڅېدلو او ځانګړي کارولو ته اړتيا لري، يوه استثنا د یو راپرځیدو نوي NullPointerException له خوا غورځول دی ().
دکتاب په اړه لږ جزئيات
کله چې له استثنا معامله ضروري ده زیاتره د د د عمده جاوا ګټه واخلي ترڅو د يو ځانګړي اقدام ته مراجعه وکړئ. د خپل پنځه پروګرامونو دا ژبه:
- هڅه وکړئ. دا د عمده ده مخکې سره وکتل، او دا یو د کوډ د یوه کړی چې کولای شي د یو استثنا غورځوي انتقال په مانا ده. بالک محدود قوسونو کې {}.
- اخستونکي. دا د خوښې وړ استثنا ډول ولېرو او دا مناسبه توګه سمبال کړي.
- په پای کې. دا د عمده اختياري ده او د ده چی د کوډ، چې اړتيا ده دليله ځینو ټوټه ترسره کارول، که څه هم نه استثنا کې نښتی دی نه. هڅه د بنديز وروسته په مستقیم ډول د ورزیاتولو.
- وشړل - تاسو ته اجازه درکوي له هر ځای څخه جاوا استثنا رامنځته کړي.
- د شپېلک - یو د عمده چې د ده په طريقه د لاسليک ځای. دا په دې مانا چې د لاندې کوډ کولای شي د دې ډول جاوا استثنا غورځوي. ميتود کار نه شي کولای په توګه تمه د هغه - ددې نښه توګه پرمخ چې باید په پام کې ونیول شي د يو سيګنال خدمت کوي.
سره هڅه نيولو
د جاوا استثنا اعلاميه، په طبيعي ډول په غاړه اخلي چې دا کار به په يوه ځانګړې لاره اداره شي. تر ټولو مناسب لاره نه دا، که د کوډ کړی دی په یو بلاک کې رستې دي. چې ښايي يوه استثنا لري. کله چې تاسو دغه کوډ پرمخ، د مجازی ماشین به نامتوقع د حالت د موندلو، پوه شي چې یو مهم بنديز شته دی او د انتقال سره د پروسس مرکز کنټرول.
د جاوا کوډ په یوه ځانګړي بلاک هڅه، دننه چې ښايي يوه استثنا وي تاو دی. په دې ډول، د هغه څو مترقبه حالاتو کې چې به په همدې ځای، نه raspolzayas کوډ ونيول شي ځای.
د پروسس د څانګې ته تر ټولو غوره بېلګه کوډ په لاندې ډول ده:
هڅه {
// دلته د ځينو کوډ چې ښايي يوه استثنا توليد
} ګانوسره (Tip_isklyucheniya_1 identifikator_1) {
// دلته شته دی استثنا اداره، د خپل ډول او شرايطو له مخې؛
} ګانوسره (Tip_isklyucheniya_2 identifikator_2) {
// دلته شته دی استثنا اداره، د خپل ډول او شرايطو له مخې؛
}
د عمده اخستونکي راپور ورکوي چې د کوډ، او ته د یو استثنا دا څيړنه په لاندې ډول تشریح شوي، چې د چلند وشي، په دې شرط چې دا د خپل ډول سره سم. د پیژند د کولای شي د کود په توګه دلایل د بنديز د پروسس کولو په وکارول شي.
په پای کې
څرنګه چې دا د تیر فصل څخه څرګنده شوه، اخستونکي بلاکونو استثنا ونيسي او پروسس يې. خو ډېر وختونه د حالاتو راپورته چې بايد يو څه کوډ پرمخ، چې آيا دوی غلطي ګير پرته. د دې د عمده کلماتو په پای کې شته. دا چې د مختلفو د شمیرلو له ارزښتونو زیات کړي، د تړلو دوتنې یا شبکې سره تړاو کارول کېږي.
دا دسيسه وړاندې کوي څو اخستونکي بلاکونو اختراع ميتودونو استثنا ونيسي. د مثال په توګه، د کوډ په هڅه شامل نامتوقع د حالت په توګه د سړې لکه تولیدوی. بيا، د Console به نندارې ته شي د بيان د «بند پاتې سړې!» او «آیا چې دا هغه څه په اړه؟ خوشحالوي». دا ده چې، په هر حالت کې د په پای کې د بنديز دی اعدام.
په حقیقت کې، د يوه لاره لومړنې په پای کې شته ډډه وکړي. دا د مجازی ماشین د بشپړولو سره نښلي. څنګه پلي دا پېدا کړه، چې دا د انټرنټ ميدانونه ممکنه ده.
وشړل د عمده
وشړل تولیدوی یوه استثنا ده. خپل العروض په لاندې ډول ده:
غورځوي نوي NewException ()؛
شته دی چې د ډول NewException یو نوی استثنا جوړ (). لکه څنګه چې یو ډول ګټه اخستل کیدای شی لا د معياري جاوا کړی ټولګي کې شامل او پخوا د خپل توليد د پراختیا له خوا تعریف شوي.
دا طرحه د هر ميتود توضيحات، چې غږ بيا باید هڅه د بنديز په چوکاټ کې، څو وکولای intercept دا وي واقع برخه ده.
د عمده شپېلک
څه که د يوه حالت کې چې د طريقه استثنا غورځوي، خو نه شي کولای په سمه توګه سمبال کړي تر څو د پرمختګ د بهیر. د دې لپاره، چې په طريقه لاسلیک مشخص کلمه د شپېلک او د امکان استثنا ډول.
دا لېبل دی کار لپاره یو مشتري پرمختگپالونکي د شاخص په ډول چې د میتود نه ده چې خپل ورته استثنا سمبال کړي. برسېره پر دې، که د ګمراهۍ ډول وکتل، بيا د compiler به په صراحت زور لپاره دا پوښتنه.
چې له منابعو هڅه وکړئ
د جاوا نسخه 7 پرمختگپالونکي د يو ستر نوښت، په توګه سره د منابعو د درملنې هڅه د بنديز دي.
زياتره شيانو په جاوا جوړ شوي دي، وروسته د استعمال بايد وتړل شي چې له منابعو ساتنه. پخوا دا د دې په پام کې ونیسي او د دغو مواردو کې په لاسي ودروي. اوس، خو هغوی AutoClosable ليدنمخ ښکاري. دا مرسته کوي چې په اتوماتيک ډول شيانو په یوه هڅه د بنديز پر ځای لا کارول وتړي. د دې روش له لارې دا ډېر مناسب شي د کوډ ليکلو په خپل readability ده د پام وړ لوړه شوې ده.
خپل ټولګي جاوا استثنا
د تشريح پروګرامونو ژبه راوړونکی ته د بیړنیو حالاتو د ډيزاين ډولونه ډېرو اړخونو حساب کړ. که څه هم، د انتخابونو د ټولو د مخنيوي د غونډو د پایلو به کار نه، نو په جاوا د توان د خپلو استثنا تعريف پلي کړي، چې دا د ځانګړې کوډ د اړتياوو مناسبه ده.
د ساده لاره رامنځته - څخه تر ټولو مناسب د څيز شرایطو په ميراث.
د ټولګي چې په دې موخه خپل استثنا تعريف کارول شته وشول څخه استثنا په ميراث،. یو تلوالیزه، دوهم - - سره د استدلال MSG ډول تار په MyException دوه کانسترکتورز لري.
بيا، په عامه ټولګي FullConstructors پلي طريقه F، چې لرونکی د السلیک شپېلک MyException. دا مانا لري، چې د عمده F کولای لکه جاوا MyException استثنا غورځوي. برسيره پر دې، په دې طريقه د بدن متن ته معلومات Console پخپله او د واقعي نسل MyException، له خوا راپرځیدو محصول تولید.
دوهم ميتود څخه د لومړي یو چې کله چې تاسو يو استثنا جوړ کړي، دا د یو تار د پاراميټر وفات شو، چې دا به په نيولو په Console منعکس شي لږ څه توپير لري. په عمومي دا روښانه ده چې د f () او د G () کې هڅه کتل کيښودل کيږي او د عمده اخستونکي بندي MyException ونيسي. د پروسس پایله دا ده چې د Console تېروتنه پېغام نندارې ته:
نو راغلل جاوا استثنا کړئ، خپل لاس له خوا.
معماري استثنا
لکه څنګه چې په جاوا د ټولو شيانو، استثنا هم په ميراث او د مرتبو يوه جوړښت لري. د ټولو غلطيو په دې پروګرامونو ژبه وغورځول ريښو عنصر دی ټولګي java.lang.Throwable. څخه په میراث هغه دوه ډوله - تېروتنه او استثنا ده.
تېروتنه - د مهم ګمراهۍ نښه ده او د ده وناکتل جاوا استثنا. په ډيرو مواردو کې خمنیوی او پروسس داسې معلومات په ډيزاين په پړاو واقع شو او د وروستی وړاندیز کوډ په معرفي کولو اړتيا نه لري.
تر ټولو عام ډول کارول کيږي د رامنځته کولو او د استثنا تحليل ټولګي ده استثنا ده. کوم، چې په خپل وار سره، په څو څانګو، په شمول د RuntimeException وېشل شوی دی. By RuntimeException چلولو استثنا دي چې، د دې پروګرام په ترڅ کې رامنځته. ټول ټولګي څخه مشتق دي unverifiable.
زیاتره دا استثنا هم شته
په جاوا استثنا، چې د لست په لاندې توګه وړاندې شي، وي زیاتره وخت کارول کیږي، نو تاسو باید په تفصیل سره د هغوي د هر تشریح:
- ArithmeticException. پر دغو غلطيو سره حسابي عملیاتو په تړاو شامل دي. تر ټولو څرگند مثال په توګه - د صفر د فرقې.
- ArrayIndexOutOfBoundsException - یو د ترتیب عنصر شمېر چې د خپل اوږدوالي د ټولو زیات د استیناف.
- ArrayStoreException - د ترتیب نامتوافقه عنصر ډول وټاکي هڅه.
- ClassCastException - تر بل غلط يو ډول د راوستلو يوه هڅه.
- IllegalArgumentException - ميتود په پوښتنه کې د غلط استدلال کاروي.
- NegativeArraySizeException - استثنا کله چې تاسو د منفي اندازه پیشه رامنځته کړي.
- NullPointerException - د مرجع د ناوړه په صادرېدو سره.
- NumberFormatException - وخت پېښېږي کله چې د يوه غلط تار بدلولو ته integer.
- UnsupportedOperationException - د عملياتو نه ملاتړ.
دغه مثالونه د وناکتل جاوا استثنا ډولونه استازيتوب وکړي. خو تر دې کتنه وکتل:
- ClassNotFoundException - کلاس ونه موندل شو.
- IllegalAcccessException - د ټولګي ته لاسرسی محدود.
- InterruptedException - د جريان د اخلال.
- NoSuchFieldException - هلته اړ دي برخه کې نه لري.
د استثنا تفسیر
د خبرو د مخ په وار وار استثنا بايد يادونه وشي چې په ډیزاین خپل تفسير، په ناسم درک کولای شي. بل یو لنډ لیست په تفصیل سره، چې ښايي نامتوقع حالت وي هلته تشریح ده.
NullPointerException. د لومړي صورت کې کله چې هلته ده یوه استثنا ده، چې د يو څيز چې دی مساوي په صادرېدو سره د يوه مرجع څخه وغواړو. دا هم غزوي د صفر ټولګي مثال په لارو څخه. NullPointerException ښايي د يو برابر په اوږدوالي په صادرېدو سره یوشان د ترلاسه کولو په صورت کې غورزول کیږي. د داسې حالاتو د مخنيوي به وخت په وخت په صادرېدو سره ځايونو وګورئ.
ArrayIndexOutOfBoundsException. هر پروګرام د arrays د استعمال څخه پرته نه شته کولای شي. سره سم، دا د پرله پسې ډب کولای شي د تولید او تېروتنه. استثنا وخت پېښېږي کله چې د یو د پراختیا هڅه کوي چې یو ترتیب عنصر چې په شاخص لست کې نه ده لاسرسی. د مثال په توګه، د غوښتل ارزښت پورته یا د لاندې د صفر په اوږدوالي دی. ډیر وختونه د حقیقت چې په ترتیب سره د صفر یو نمره پيل کړل.
د موندنو
ا فغانستان کې جاوا استثناوې - يوه ځواکمنه وسيله چاپیریال، چې په رښتیا سره د د پروگرامر د کار د اسانتیا برابروي او اجازه ورکوي د هغه يو پاک او د کوډ غلطيو القلب رامنځته کړي. د څرنګوالي په ارامه او باثباته فعالیت غوښتنلیک د پراختیا د دریځ او شهرت پورې تړاو لري.
البته، په یوه او یا لږ ډیر ساده پروګرامونو ته د غیر نورمال حالاتو ډېر آسانه کې ګوري. خو په يو څو سوه زره کرښو لوی اتومات کمپلکسونو د دا ممکنه ده یوازې په توګه د اوږدې مودې د ازمايښت او debugging په پایله کې.
د جاوا استثنا ګمراهۍ څخه چې په ځينو غوښتنلیکونه راپورته، ځينې شرکتونه انعام کله چې مینوال پیدا کړي. په ځانګړې توګه هغه چې د لامل د امنیتي پالیسۍ د سافټ ویر څخه سرغړونه له خوا ستاینه وکړه.
Similar articles
Trending Now