ComputerProgramming

Java: eksepsiyon ug sa ilang pagdumala sa

Sa bisan unsa nga programa operate stably lamang kon ang source code mao ang debugged, ug walay mga kondisyon nga mahimong hinungdan sa wala damhang mga kahimtang. Ang proseso sa pagdakop posible nga mga kapakyasan nga gidala sa gawas sa programming stage. Sa pagbuhat niini, ang developer nga makakuha sa asoy sa tanan nga mga gipaabot nga resulta ug mosulay sa limitahan ang epekto sa sayop aron nga kini dili makabalda sa operasyon sa programa, o modala ngadto sa sa iyang pagkahugno.

Sa diha nga tingali nga imong gikinahanglan gawas handling

Sa Java, usa ka gawas mahimong tungod sa sayop nga user input, walay panginahanglan alang sa usa ka kapanguhaan o kalit nga network disconnection programa. Kay komportable nga paggamit gibuhat sa aplikasyon developer, kamo kinahanglan gayud nga sa pagpugong sa mga panghitabo sa mga emergency nga sitwasyon. consumer dili kinahanglan nga adunay sa paghulat sa paghunong sa usa ka aplikasyon, sa mawad-an data sama sa sa usa ka resulta sa usa ka unhandled gawas, o bahin lamang sa usa ka mensahe makita nga nag-ingon nga ang usa ka butang nga miadto sayop.

Pagdumala sa Java eksepsyon

Unsa sa paghunahuna? Ang Java nga pinulongan adunay iyang kaugalingon nga gitukod-sa gawas pagdumala kagamitan, katuyoan. Siyempre, ang usa ka dako nga porsiyento sa sayop nga nadakpan sa laing hugpong stage, ang sistema sa awtomatikong pahibalo sa nga ang paggamit kini mao ang dili na sa mahimo. Apan adunay niini nga matang sa gawas nga mahitabo sa Runtime. developer kinahanglan nga makahimo sa magpaabut niini ug sa pagdisenyo sa mga code sa pagkaagi nga wala kini hinungdan sa usa ka sayop, ug gidumala kini sa usa ka espesyal nga paagi ug gitunol sa kontrol sa laing sanga.

Sa Java, kini gipahamtang sa tighipos aron sa pagdakop sa usa ka gawas, mao nga ang mga tipikal nga mga problema nga nailhan ug usa ka bandila sumbanan ehersisyo.

tipikal nga giapil

Ang simplest panig-ingnan, diin imong mahimo og usa ka gawas - niini nga division. Bisan pa sa iyang kayano, sa mga termino, ingon sa usa ka magbabahin, mahimong zero, nga moresulta sa usa ka sayup. Aw, kon kini mao ang posible nga sa pagtagna sa pagtunga sa mga nangagi ug sa pagpugong sa. Apan kini nga opsyon dili sa kanunay anaa, mao nga pagdakop sa gawas kinahanglan nga organisar direkta sa panghitabo sa "bahinon pinaagi sa zero".

Ang Java mekanismo nagpugong sa pagproseso sayop tan-awon sama niini:

  • mohon gawas butang ang gibuhat sa, ingon man sa bisan unsa nga lain nga mga;
  • sa natural nga dagan sa mga programa mao ang mabalda;
  • mahilayo mekanismo nga naningkamot sa pagpangita sa usa ka alternatibo nga paagi sa pagpadayon sa code;
  • Find sa usa ka luwas nga pagpatay sa programa sa processor, trabaho o gipahiuli, o mahitabo katumanan sa gawas sa usa ka espesyal nga paagi.

Ang simplest panig-ingnan sa pagmugna sa usa ka sayop tingali tan-awon sama niini:

kon (ang usa ka == bili)

ilabay sa bag-ong NullPointerException ();

Dinhi, ang baryable sa usa ka nga gitan-aw sa Initialization, ie, dili kon ang paghisgot sa usa ka bili nga butang. Kon niini nga kahimtang nga mitindog ug kinahanglan espesyal nga pagdumala, usa ka gawas igasalibay sa usa ka throw bag-ong NullPointerException ().

Diyutay nga detalye bahin keywords

Sa diha nga pagpakig-angot sa mga eksepsiyon mao ang kanunay nga gikinahanglan aron sa paggamit sa keyword Java sa pagtumong sa usa ka partikular nga aksyon. Kini nga pinulongan sa ilang lima ka mga programming:

  • Sulayi. keyword Kini nga nakigkita na, ug kini nagpasabot sa usa ka transisyon ngadto sa usa ka seksyon sa code nga paglabay sa usa ka gawas. Block limitado brace {}.
  • Dakpon. Kini makasalipod sa gitinguha nga matang gawas ug pagdumala niini sa husto nga paagi.
  • Sa katapusan. keyword Kini mao ang optional ug gigamit sa pagpahigayon sa usa ka piraso sa code, nga gikinahanglan gihapon, bisan pa kon walay gawas dili masakpan. Dugang direkta human sa pagsulay block.
  • Itugyan - lets kanimo sa paghimo sa Java eksepsiyon gikan sa bisan asa.
  • Throws - sa usa ka keyword nga gibutang sa pirma pamaagi. Kini nagpasabot nga ang mga mosunod nga mga code mahimo nga paglabay sa usa ka gawas sa niini nga matang Java. marka Kini nga nag-alagad ingon nga usa ka signal ngadto sa mga developers nga kinahanglan nga pas-anon diha sa hunahuna - ang pamaagi dili makahimo sa pagbuhat sama sa gilauman sa kaniya.

Catching sa usa ka sa pagsulay

Release sa Java eksepsiyon, natural nagaangkon nga kini gidumala diha sa usa ka espesyal nga paagi. Ang labing sayon nga paagi sa pagbuhat niini, kon ang code seksyon nga mga kinutaang sa sa sa usa ka block. Nga naglangkob sa usa ka gawas. Sa diha nga ikaw modagan niini nga code, ang virtual makina makakaplag sa usa ka wala damha nga kahimtang, nga makasabut nga adunay usa ka kritikal nga block ug pagbalhin sa pagpugong sa estasyon sa pagproseso.

Ang Java code giputos sa usa ka espesyal nga block sa pagsulay, sa sulod nga mahimong usa ka gawas. Busa, iyang gibutang sa pipila ka wala damhang mga sitwasyon nga mabitik sa mao gihapon nga dapit, dili raspolzayas code.

Ang labing kinaandan nga code sa processing unit mao ang sama sa mosunod:

sulayi {

// Ania ang pipila ka mga code nga makamugna usa ka gawas

} Dakpon (Tip_isklyucheniya_1 identifikator_1) {

// Dinhi adunay gawas handling, sumala sa iyang matang, ug ang kahimtang sa;

} Dakpon (Tip_isklyucheniya_2 identifikator_2) {

// Dinhi adunay gawas handling, sumala sa iyang matang, ug ang kahimtang sa;

}

Keyword isda nagtaho nga ang code, ug scan kini alang sa usa ka gawas, nga pagtratar sama sa gihulagway sa ubos, nga gihatag nga kini complies uban matang niini. ilhanan sa mahimong gigamit sa pagproseso sa sa code block nga ingon sa mga argumento.

Sa katapusan

Ingon nga kini nahimo nga tin-aw nga gikan sa miaging kapitulo, isda bloke pagdakop eksepsiyon ug pagproseso sa kanila. Apan kaayo sa kasagaran sa mga kahimtang motungha diin kinahanglan modagan sa pipila code, sa walay pagtagad sa kon sila nadakpan sayop. Kay kini didto mao ang keyword katapusan. Kini gigamit aron sa pagdugang sa mga mithi sa mga nagkalain-laing mga counters, panapos file o network koneksyon.

luna Kini nagpresentar sa pipila ka isda bloke imbento mga pamaagi pagdakop eksepsiyon. Kay sa panig-ingnan, ang code nga anaa sa pagsulay og usa ka wala damha nga kahimtang sama sa Cold. Unya, ang console nga gipakita ekspresyon «Naipit sa bugnaw!» Ug «ba nga ang usa ka butang sa pagdasig sa mga?». Nga mao, ang katapusan block gipatay sa bisan unsa nga kaso.

Sa pagkatinuod, ang usa ka paagi sa paglikay sa hinungdan sa katapusan didto. Kini konektado sa pagkompleto sa virtual makina. Pangita og kon sa unsang paagi sa pag-implementar niini, kini mao ang posible nga diha sa Internet bukas nga luna.

throw keyword

Throw makamugna usa ka gawas. Niini syntax mao ang sama sa mosunod:

ilabay sa bag-ong NewException ();

Adunay gibuhat sa usa ka bag-o nga gawas sa matang NewException (). Ingon sa usa ka matang mahimong gamiton na gilakip sa standard nga mga klase sa Java librarya ug kaniadto gihubit sa developer sa iyang kaugalingon nga produksyon.

design Kini mao ang bahin sa paghulagway sa bisan unsa nga pamaagi, nga ang tawag kinahanglan unya mahitabo sa sulod sa mga pagsulay block, aron nga makahimo sa intercept niini.

throws keyword

Unsa kon sa proseso sa kalamboan sa usa ka kahimtang diin ang mga pamaagi mahimong ilabay usa ka gawas, apan dili makahimo sa pagdumala sa husto nga paagi. Sa katapusan niini, sa pirma pamaagi nagtumbok sa pulong throws ug matang sa posible nga mga eksepsiyon.

marka Kini mao ang usa ka matang sa timailhan alang sa mga developers kliyente nga ang pamaagi dili makahimo sa pagdumala sa ilang mga sama nga gawas. Dugang pa, kon ang mga matang sayop ang gitan-aw, nan, ang tighipos mopugos tin-aw mangayo alang niini.

Sulayi sa mga kapanguhaan

Ang Java version 7 developers naglakip sa usa ka dako nga kausaban nga, ingon sa usa ka pagtambal pagsulay block sa mga kapanguhaan.

Daghang mga butang gilalang sa Java, human sa paggamit takpan sa sa pagtipig sa mga kapanguhaan. Kaniadto kini may sa pagdala sa niini ngadto sa asoy ug mohunong kini nga mga higayon sa kamut. Karon, bisan pa niana, sila nagpakita AutoClosable interface. Kini makatabang sa awtomatikong pagsira na gigamit butang nga gibutang sa usa ka sa pagsulay block. Pinaagi niini nga pamaagi kini mahimong mas sayon sa pagsulat code sa iyang mabasa ang kamahinungdanon nagdugang.

Kaugalingon nga mga klase Java eksepsyon

Ang tiglalang sa gihulagway programming pinulongan gikuha ngadto sa asoy sa daghan nga mga bahin sa mga matang plano sa emerhensiya. Apan, sa tanan nga mga nga mga kapilian sa pagpugong sa resulta sa mga panghitabo dili pagtrabaho, mao nga sa Java implementar ang abilidad sa nagpaila sa ilang kaugalingon nga mga eksepsiyon, kini mao ang angay sa mga panginahanglan sa mga partikular nga code.

Ang yano nga paagi sa paghimo sa - sa pagpanunod sa labing angay nga sa mga butang konteksto.

Adunay nahitabo sa pagpanunod sa gikan sa Exception, ang klase nga gigamit sa nagpaila sa imong kaugalingon nga mga eksepsiyon. Sa MyException adunay duha ka constructors - sa usa ka remate, ang ikaduha - sa argumento BUHAT matang hilo.

Dayon, sa publiko nga lawak-klasehanan FullConstructors implementar nga pamaagi f, nga naglangkob sa pirma throws MyException. keyword Kini nagpasabot nga ang f mahimo paglabay sama Java MyException gawas. Dugang pa, sa lawas nga pamaagi nga gihimo text output impormasyon ngadto sa console sa iyang kaugalingon ug sa aktuwal nga kaliwatan MyException, pinaagi sa labay.

Ang ikaduha nga pamaagi mao ang gamay sa lain-laing gikan sa unang usa nga sa diha nga sa paghimo kaninyo nga usa ka gawas, kini miagi nga usa ka hilo sukaranan, nga makita diha sa mga console sa catching. Sa nag-unang kini mao ang tin-aw nga ang e () ug g () ang gibutang sa usa ka sa pagsulay pagsusi ug keyword kuha gihulma, giporma sa pagdakop MyException. Ang resulta sa pagproseso mao ang pagpasundayag sa usa ka mensahe sa sayop ngadto sa console:

Mao kini ang nahitabo sa pagdugang sa Java eksepsiyon, pinaagi sa iyang kaugalingong kamot.

arkitektura eksepsyon

Ingon sa tanan nga mga butang sa Java, eksepsyon usab napanunod ug sa usa ka hinan-ay nga gambalay. Ang gamut nga elemento sa tanan nga mga sayop ilabay sa niini nga programming nga pinulongan mao ang klase java.lang.Throwable. Napanunod gikan kaniya duha ka matang - Error ug Exception.

Sayop - signal sa kritikal nga sayop ug ang dili mapugngan Java eksepsiyon. Interception ug sa pagproseso sa maong mga data sa kadaghanan sa mga kaso mahitabo sa design stage ug dili sa panginahanglan sa igpasiuna sa katapusang aplikasyon code.

Ang labing sagad nga gigamit sa klase alang sa pagmugna ug pag-analisar sa mga eksepsiyon mao ang Exception. Nga, sa baylo, gibahin ngadto sa pipila ka mga sanga, lakip na ang RuntimeException. Pinaagi sa RuntimeException mga Runtime eksepsiyon, nga mao, nga nahitabo sa panahon sa programa. Ang tanan nga klase nga nakuha gikan niini mao ang mga dili matino nga pangangkon.

Kasagaran adunay mga eksepsiyon

Sa Java eksepsiyon, sa listahan sa mga nga gipresentar sa ubos, gigamit sa kasagaran, mao nga kamo kinahanglan nga paghulagway sa matag usa kanila sa detalye:

  • ArithmeticException. Kini naglakip sa mga sayop nga nakig-uban sa mga operasyon aritmetik. Ang labing masulaw nga panig-ingnan - sa division pinaagi sa zero.
  • ArrayIndexOutOfBoundsException - sa usa ka apelar sa elemento numero sa gubat nga milapas sa kinatibuk-an nga gitas-on niini.
  • ArrayStoreException - pagsulay sa assign sa usa ka sukwahi nga matang nga elemento sa gubat.
  • ClassCastException - usa ka pagsulay sa pagdala sa sayop sa usa ka matang ngadto sa lain.
  • IllegalArgumentException - sa paggamit sa sayop nga argumento sa tawag nga pamaagi.
  • NegativeArraySizeException - usa ka gawas sa diha nga sa paghimo kaninyo nga usa ka gubat sa mga negatibo nga gidak-on.
  • NullPointerException - sayop nga paggamit sa mga pakisayran sa bili.
  • NumberFormatException - mahitabo sa diha nga ang usa ka sayop nga hilo pagkakabig sa integer.
  • UnsupportedOperationException - operasyon dili gisuportahan.

Kini nga mga panig-ingnan nagrepresentar sa mga matang sa dili mapugngan Java eksepsiyon. Apan tan-awon gitan-aw:

  • ClassNotFoundException - Klase dili makaplagan.
  • IllegalAcccessException - idili access ngadto sa klase.
  • InterruptedException - paghunong sa dagan.
  • NoSuchFieldException - walay gikinahanglan nga uma.

Ang hubad sa kahulogan sa mga eksepsiyon

Namulong sa kanunay engkwentro eksepsiyon kinahanglan nga nakita nga ang ilang kahulogan sa design, mahimong nakasabut sayop. Sunod mao ang usa ka mubo nga listahan sa pagpatin-aw sa dugang nga detalye, diin may usa ka wala damha nga kahimtang.

NullPointerException. Ang unang kaso sa diha nga adunay usa ka gawas, mao ang sa pagdangup ngadto sa usa ka paghisgot sa usa ka butang nga mao ang katumbas sa bili. Kini usab mihatag sa zero mga pamaagi klase Pananglitan. NullPointerException mahimong ilabay sa kaso sa pag-angkon sa usa ka managsama nga gitas-on bili gubat. Aron sa paglikay sa ingon nga mga sitwasyon ang matag check sites sa bili.

ArrayIndexOutOfBoundsException. Sa bisan unsa nga programa sa dili anaa sa gawas sa paggamit sa mga arrays. Busa, ang kanunay nga recourse ngadto sa kini makamugna ug kasaypanan. Gawas mahitabo sa diha nga ang usa ka developer naningkamot sa pag-access sa usa ka gubat nga elemento nga dili sa listahan sa index. Kay sa panig-ingnan, ang gihangyo nga bili mao ang sa ibabaw o sa ubos sa zero gitas-on. Very sa kasagaran mao ang usa ka resulta sa kamatuoran nga sa gubat nagsugod uban sa usa ka score sa zero.

findings

Pagdumala sa Java eksepsiyon - sa usa ka gamhanan nga himan palibot, nga sa hilabihan gayud pasilitar sa buhat sa programmer ug nagtugot kaniya sa paghimo sa usa ka limpyo ug walay kasaypanan code. Sa unsa nga paagi nga hapsay ug lig-on nga ninglihok aplikasyon agad sa kahimtang ug sa reputasyon sa developer.

Siyempre, sa usa ka labaw nga o dili kaayo yano nga mga programa sa pagsubay abnormal nga mga sitwasyon mas sayon. Apan sa dako nga automated mga dinugtongdugtong alang sa pipila ka gatus ka libo ka linya kini mao ang posible nga lamang ingon sa usa ka resulta sa hataas-nga-termino testing ug debugging.

Kay Java sayop gawas gikan sa nga motungha sa pipila aplikasyon, ang pipila sa mga kompaniya sa paghalad sa usa ka ganti kon makakaplag sila mahiligon. Ilabi na gipabilhan sa mga nga hinungdan sa usa ka paglapas sa seguridad nga palisiya software.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ceb.delachieve.com. Theme powered by WordPress.