Komputeran, Bernameyên
Java: istisna û bizava xwe
Bęjeyek ji bernameya stably kar wê bi tenê eger kodê çavkanîyê li debugged ye, û tu şert û mercên ku dikare di rewşên ne di rojevê sedema hene. Pêvajoya nêçîrvanê şkestin pêkan e ku li ser qonaxa bernameyên hilgirtin. Ji bo vê jî, di pêşvebirinê çav digire, hemû encamên Bahçelî û hewlbide ji bo sînorkirina bandora error, da ku ew ne dikarin bi vê operasyonê de di programê de mudaxele, an sedema hilweşîna wê.
Gava ku tu rêzkirina kombersê bizava bilî divê
Di Java, dikare bi awarteyê ji aliyê input user rast nenivîsandiye, ji ber, êdî pêdiviya ji bo çavkaniyeke an ji nişka ve bernameya tora demokrasîya. Ji bo bikaranîna rehet afirandin destê pêşvebirinê sepanê, divê tu xuyanîbûna rewşên awarte kontrol bike. Xerîdaran, divê ne li bendê ji bo dev ji serlêdana, winda daneyên ku di encama awarteyê nefehmkirî, yan jî bi tenê beşek ji peyama xwe xuya diyar kir ku tiştek xelet çû.
Hilgirtina istisna Java
Çi ji bo ku? The zimanê Java heye xwe ava-li fonksiyonên bizava bilî wê. Bê guman, beşek mezin ji error bi qonaxa Wedat din girtin, ku sîstema automatically wê ku bikaranîna ye, êdî ne gengaz agahdar bikin. Lê belê bi vî rengî yên ji bilî ku at runtime pêk tê heye. Pêşvebir divê karibe bi pêşbînî û dîzayna kodê de, da ku, wê ew çewtî sedema ne be, û ev bi awayekî taybet bidome û da destê wan kontrol şaxê din.
Di Java, ev yek ji aliyê berhevkar ferz ji bo kanibe bi awarteyê, da ku pirsgirêkên tîpîk tê zanîn bi û xwedî qalibên exercise standard.
exclusions tîpîk
A herî hêsan mînak, yên ku tu dikarî bi awarteyê get - ev dubendî. Tevî ku sadeyî xwe, di warê, wekî cûdakar, dikare bibe sifir, ku di error bi encam bibe. Baş e, eger bibe, ev e ku pêşbînî li ser derketina holê ya berê û rê. Lê belê ev bijare neyê her tim License de, da û berbiçav ji bilî divê rasterast di bûyerê de ji "divide by zero" li dar xist.
Mekanîzmaya Java to bikim error processing dişibe vê:
- object bilî bavêtana afirandin e, wek ku herweha hemû yên din;
- kursa xwezayî yên bernameya qut e;
- mekanîzmayeke vederkirina hewl dide ji bo dîtina rêyeke alternatîf berdewam code;
- Find a darvekirinê bi ewle yên bernameyê li processor, kar an dasekinandinê, an pêkanîna awarte di awayekî taybetî wê biqewime.
Herî hêsan û nimûne ji afirandina an error rêzkirina kombersê like this binêrin:
eger (a null ==)
bavêje NullPointerException nû ();
Li vir, variable a ya li destpêkêyên hatine kontrolkirin, ango, e, gelo reference to a object null ne. Eger ev rewş rû daye û divê berpirsê dosya taybetî de, ji bilî vê bi avêtina NullPointerException nû avêtin ().
Pêzanînên gelek kêm li ser keywords
Dema ku mijûlbûna bi istisna ye caran pêwîst ji bo bikaranîna Java keyword ji zihniyeta ku ji bo çalakiyek taybetî. Ev ziman ji pênc bernameyên xwe:
- Try. Ev kilît jixwe civiya, û ev tê wê wateyê ku derbasbûna nav beşekî ji koda ku dikare bi awarteyê bavêje. Block destû sînor {}.
- Masiyan. Ev intercepts cureyê îstîsna tê xwestin û li bedena ev tasnîfkirin.
- Di dawiyê de. Ev keyword ne pêwîst e û tê bikaranîn ji bo pêkanîna perçek hin code, ku Werhasil, ne hewce ye, eger tu ji bilî dudile ne. rasterast ji layê piştî block biceribînin.
- Bavêje - dide te ku tu îstisnayan, Java biafirîne ji her derê.
- Beyaz - kilît ku li sîgnatûrek method ji danîn. Ev tê wê wateyê ku koda jêr dikarin ji bilî vê type Java bavêje. rêbaza nikarin kar bikin, wek ji wî çaverê - Ev mark wek sîgnaleke ji bo pêşdebiran dibe ku divê di hiş de şahidî bê xizmetê dike.
Catching bi a try
Release ji bilî îstisnayan Java, helbet bawer dike, ku ew dê di riya taybet bidome. Rêya xweşkeys de herî zêde ji bo vê yekê, eger beşa code is off di block zadî. Kîjan belkî bi awarteyê. Gava ku hûn rê ve ev code, li makîne virtual dê rewşa unexpected bibînin, fêm bikin ev e, ku bloka krîtîk heye û veguheztina kontrol ji bo li qereqolê bi processing.
Koda ku Java a try block taybet, ku dibe ku ji bilî pêça. Bi vî awayî, ew çend rewşên di rojevê de, ku dê di eynî cihî, ne raspolzayas code girtin danîn.
Koda tîpîk ji yekîneya muamelekirina li wiha ye:
hewl {
// Here hin koda ku dibe ku ji bilî berhem e
} Catch (identifikator_1 Tip_isklyucheniya_1) {
// Here e bizava îstîsna hene, li gor şêwaz û mercên xwe;
} Catch (identifikator_2 Tip_isklyucheniya_2) {
// Here e bizava îstîsna hene, li gor şêwaz û mercên xwe;
}
nêçîrvanê Bigere radigîhîne ku code, û careke dîn jî ji bo ku ji bilî, ji bo bên dermankirin, ji jêr, şertê ku ew bi type xwe bihêzî. The naskirin dikarin di hevdîtina block tevgerê wek argumanên bi kar anîn.
Di dawiyê de
Çawa ku ji beşa berê jî diyar bû, blokan nêçîrvanê kanibe istisna û Pêvajoya wan. Lê belê gelek caran di rewşa çebû, ku divê hin koda bixebitîne, ne giring e bê ew sedema girtin. Ji bo ev e keyword di dawiyê de heye. Ev tê bikaranîn, ji bo zêdekirina nirxên counters cuda, girtina files an girêdanên torê.
Ev komplo presents çend navçên nêçîrvanê folklor rêbazên kanibe istisna. Ji bo nimûne, code dihewîne di try şêwey rewşeke unexpected wek sar. Hingê, konsolê werin nîşan wê îfade «Gunehkar sar!» Û «Ma kir, ku tiştekî ji piçekî li ser?». e ku, di dawiyê de block ku di her rewşê de hatin darvekirin.
Di rastiyê de, bi awayekî, ji bo egera dawiyê de heye. Ev bi temamkirina di makîneya virtual ve girêdayî ye. Find çawa ji bo cîbicîkirina ew, ew li ser înternetê cîhên vekirî gengaz e.
keyword avêtina
Avêtina şêwey awarteyê. syntax wê wiha ye:
bavêje NewException nû ();
a ji bilî nû ji bo type NewException li afirandin heye (). Wek type dikarin bên bikaranîn jixwe di dersên standard pirtûkxaneya Java de û berê jî ji aliyê pêşvebirinê yên hilberîna xwe bi xwe destnîşan kirin.
Ev design beşek ji description of ti şêwazê, ku banga wê divê di nav block try bibin, ji bo ku bikaribin ew bikim e.
Li Þîfreyę Bigere xişandin
Çi eger di pêvajoya pêşketina rewşa ku rêbaza, dikarin ji bilî bavêje, lê nikarin ji bo çareserkirina baş ne. Bi vê armancê, li sîgnatûrek method ji dibêje ku gotina bavêje û type of istisna ne mimkun e.
Ev label cûreyeke nîşana ji bo pêşdebiran muwekîlê e ku rêbaza e karibin bi rewşên heman bilî xwe ne. Li gel vê, eger type çewtî hatibe, paşê dendikên eşkere zorê, wê ji bo wê bipirsin.
Hewl bide ku çavkaniyên
The Java Versiyon ji 7 pêşdebiran sernavên a nûbûn û mezin, wekî blokek tedawî try bi çavkaniyên.
Gelek tiştên bi li Java tên afirandin, piştî bikaranîna divê werin girtin, ji bo parastina çavkaniyên. Berê ew bû ku ev nav account û dev ji van rewşan de bi destan. Niha, lê belê, ew virtual AutoClosable xuya bû. Ev alîkarî ji bo automatically tiştên berê bi kar danîn di block try bigire. Bi vê nêzîkatiya bûye xweşkeys de zêdetir ji bo nivîsandina koda li Çalişlar xwe ya berbiçav zêde bûye.
dersên xwe istisna Java
The creators ji zimanê bernameyên şirove nav account gelek waran de ji cureyên design yên awarte de pêk hat. Lê, hemû ji vebijarkên ji bo rê li encamên bûyerên wê kar nekin, da ku li Java şiyana define istisna xwe bi xwe bi cih, ev jî li gorî pêdiviyên yên qanûna taybetî ye.
Herî hêsan û rê ji bo afirandina - ji bo mîras ji herî rêkûpêk ji bo çarçoveyê de object ya.
çêbû, ji bo ku ji bilî ku mîras hene, çîna ku ji bo define istisna xwe bi xwe de. Di MyException du constructors - a standard, ya duyem jî - bi argumana type msg String.
Hingê, di rêbaza FullConstructors polê de raya giştî bi cih f, ya ku bi îmzeya xişandin û MyException. Ev keyword tê wê wateyê ku f dikarin wekî îstîsna Java MyException bavêje. Bêhtir, di bedena method ji hilberandin text encam agahî ji konsolê xwe û MyException nifşê rastî, destê xwe bavêje.
Şêwaza duyemîn hinekî cuda ji ya pêşî, gava ku tu bi awarteyê ava, ku derbas a parametre string, ku dê di konsolê at nêçîrvanê de eşkere ye. Li sereke eşkere ye ku f () û g () bi di vekim try danîn û xofê keyword mîheng ji bo bindestkirina MyException. Di encama processing e ji bo nîşandanê an Peyama çewtiyê ji konsolê:
Bi vî awayî ew ji bo ku zêde istisna Java, bi destê xwe.
istisna Architecture
As bi hemû tiştên di Java, istisna bi her maye, û xwedî avasazîya hiyerarşîk. Hêmaya kok ji hemû çewtî avêtin di vê zimanê bernameyên class java.lang.Throwable e. Maye, ji wî du cureyên - Error û Exception.
Error - sinyala error krîtîk û îstisnayan, Java bêkontrolmayî ye. Interception û muameleyên wiha daneyên di piranîya bûyeran de, li dîzayna sehneyê de çêdibe û ne pêwîst e li pêşberî di code serlêdana dawî.
Çîna herî pir tê bikaranîn ji bo afirandina û zanyar li ser îstisnayan Exception e. Ku, di dora xwe de, di nav çend çiqilên, di nav de RuntimeException de dabeş dibe. By RuntimeException istisna runtime in, ku tê de, di dema programê de diqewimin. Hemû çînên Navdêr jî ji wê, gotgotên nayên.
Gelek caran ye îstîsna ne
Di istisna Java, di lîsteya ku li jêr tê pêşkêş kirin, bi gelek caran tê bikaranîn, da ku ji te re pêwîst her yek ji wan bi berfirehî rave dike:
- ArithmeticException. Di nav van de çewtî têkildar bi operasyonên çêdibe. Mînaka sîtaveke herî - dabeşkirina by zero.
- ArrayIndexOutOfBoundsException - Bangek ji bo hejmara element array ku dibuhure bi tevahî dirêjahiya.
- ArrayStoreException - hewldaneke ji bo assign cureyê element ne hincete ku ji array.
- ClassCastException - hewldana ji bo bînin yekî çewt type to din.
- IllegalArgumentException - bikaranîna argumana neheqî li banga method ya.
- NegativeArraySizeException - ji bilî dema ku hûn jî nedadî yên size neyînî biafirîne.
- NullPointerException - profîla referansên ji livmodere.
- NumberFormatException - diqewime dema zivirîna string şaş Integer.
- UnsupportedOperationException - operasyona nayê destekirin.
Ev wergerandî temsîl cureyên ji bilî îstisnayan Java nedixwest. Lê ji bo kontrolkirin û pêre:
- ClassNotFoundException - Class nehate dîtin.
- IllegalAcccessException - astengiya li access to çîna.
- InterruptedException - Birrîna herikîna.
- NoSuchFieldException - are no zeviyê required hene.
Yanî ji bilî îstisnayan
Di gotarekê de ji bilî îstisnayan gelek caran rastî divê bê diyarkirin ku şirovekirina xwe di design, dikare bi xeletî fêm kir. Next lîsteya kurt şîrove Faktayên zêdetir, li wir dibe ku rewşa unexpected li wir e.
NullPointerException. The pir yekem doza dema e ku ji bilî wê derê, ew e ku tu gilî ji bo referans ji bo bireserê ye ku wekhev ji bo livmodere. Ev jî bi rêbazên class nimûne zero welata. NullPointerException dibe ku di doza bi destxistina an length array null wekhev avêtin. To rê li van rewşên dê bi awayekî periyodîk malperên li ser null kontrol bike.
ArrayIndexOutOfBoundsException. Bęjeyek ji bernameya ne dikarin bêyî bikaranîna array hene. Li gorî vê, xwe kişandina gelek caran ew dikare bi awayekî û error. Ji bilî ku pêşwîste dema pêşvebirinê, hewlê dide ku xwe bigihînin an element array e ku di lîsteyê de Endeksa ne. Ji bo nimûne, nirxa xwestin e li jor an jêr length sifir. Gelek caran di encama wê yekê ku di array bi dereceyeke ji sifirê dest pê dike ye.
vebiguherin
Hilgirtina istisna Java - rewşeke alaveke bihêz, ku pirr hêsan karê bernameçêker û rê dide wî ji bo afirandina a paqij û ji têgihiştina çewtiyên code. Li ser serlêdana ruyê çawa xweş û aram girêdayî li ser rewşa û navûdengê developer.
Bê guman, li zêdetir an kêmtir a bernameyên sade ji bo ku şopeke rewşên anormal pir hêsantir. Lê belê di xemilîne automated mezin ji bo çend sed hezar xetên ev tenê, weke encama testkirina dirêj-û neqandina gengaz e.
Ji bo error bilî Java ji ku di hinek sepanan rabe, hin şîrketên pêşkêşkirina xelata dema ku ew bibîne heyecan. Bi taybetî, ji aliyê kesên ku sedema binpêkirina software siyaseta ewlekariya hat qebulkirin.
Similar articles
Trending Now