ArvutidProgrammeerimine

Java: erandid ja nende käitlemise

Iga programm töötab stabiilselt ainult siis, kui lähtekoodi silumisel ja ei ole tingimusi, mis võivad põhjustada ettenägematuid olukordi. Järelejõudmise protsessi võimalike rikete toimub programmitöö etapis. Selleks, arendaja võtab arvesse kõiki oodatud tulemusi ja püüab piirata mõju vea nii, et see ei häiriks programmi või põhjustada selle kokkuvarisemist.

Kui sul võib olla vaja välja arvatud käitlemine

Java, erandiks võib olla põhjustatud ebaõigest kasutaja sisend, ei ole vaja ressurss või ootamatu võrgu katkestamise programmi. Mugavaks kasutamiseks loodud rakenduse arendaja, peate kontrollida esinemise hädaolukordades. Tarbija ei peaks ootama loobuda taotluse, kaotada andmed tulemusena käsitlematu arvatud, või ainult osa ilmub sõnum, et midagi läks valesti.

Käitlemise Java erandid

Mida silmas pidada? Java keeles on oma sisseehitatud arvatud käitlemine funktsionaalsust. Muidugi, suur osa viga püütud teise koostamise etapis, süsteem automaatselt teatada, et kasutada seda ei ole enam võimalik. Aga seal on selline erand, mis tekib käitustõrge. Arendaja peaks olema võimalik näha seda ja kujundada kood nii, et see ei põhjusta viga ja käideldakse seda erilisel moel ja üle kontrolli teise filiaali.

Java, see on kehtestanud koostaja püüda erand, nii tüüpiline probleemid on teada ja on standard kasutamise mustrid.

tüüpiline välistused

Lihtsaim näide, kus saad erand - see jaotus. Vaatamata oma lihtsuse poolest, nagu jagaja, võib olla null, mis toob kaasa vea. Noh, kui see on võimalik ennustada tekkimist mineviku ja vältida. Aga see valik ei ole alati olemas, nii püüdmine arvatud tuleks korraldada otseselt korral "nulliga jagamise".

Java mehhanism pealtkuulamiseks töötlemise viga näeb välja selline:

  • hunnik arvatud objekt on loodud, samuti mis tahes muu;
  • loomulik programm on katkestatud;
  • väljajätmismehhanismi püüab leida alternatiivne võimalus jätkata kood;
  • Leia ohutu läbiviimise programmi protsessor, töö või taastatud või toimub realiseerimise arvatud erilisel moel.

Lihtsaim näide luua vea välja nägema nii:

kui (a == null)

viska uus NullPointerException ();

Siin Muutuja A kontrollitakse initsialiseerimise, st ei ole, kas viide null objekti. Kui selline olukord on tekkinud ja vajavad erilist käitlemise, erandiks on visanud visata uus NullPointerException ().

Mõned detailid märksõnu

Kui tegemist eranditega on sageli vaja kasutada märksõna Java viidata teatud toiming. See keel nende viie programmeerimine:

  • Proovi. See märksõna juba täidetud, ja see tähendab siiret koodi osa, mida saab visata erand. Block piiratud sulgude {}.
  • Catch. See sekkub soovitud arvatud tüüp ja hakkama asjakohaselt.
  • Lõpuks. See märksõna on vabatahtlik ja seda kasutatakse, et täita teatud tükk kood, mis on vajalik niikuinii, isegi kui mingi erand ei püüta. Lisatud kohe pärast proovida blokeerida.
  • Viska - saate luua Java erandeid kõikjal.
  • Viskab - märksõna, mis on paigutatud meetod allkirja. See tähendab, et järgmine kood ei viska erand seda tüüpi Java. See märk toimib signaali arendajatele, mida tuleb meeles pidada - meetod ei tööta ootuspäraselt teda.

Catching koos proovida

Release Java eranditega loomulikult eeldab, et sellega käiakse erilisel moel. Kõige mugavam viis seda teha, kui koodi jaotises on tarastatud plokis. Mis võivad sisaldada erand. Kui teil tekib selle koodi virtuaalarvuti leida ootamatu olukord, mõistma, et on olemas kriitiline plokk ja ülekanded kontrollida jaama töötlemise.

Java koodi pakitud spetsiaalsesse plokk proovida, mille jooksul võib olla erand. Seega pani mitu ootamatute olukordadega, et püütakse samas kohas, ei raspolzayas koodi.

Kõige tüüpilisem koodi töötlusseadme on järgmine:

try {

// Siin on mõned kood, mis võib tekitada erand

} Saak (Tip_isklyucheniya_1 identifikator_1) {

// Siin on arvatud käitlemine, vastavalt oma tüübile ja tingimused;

} Saak (Tip_isklyucheniya_2 identifikator_2) {

// Siin on arvatud käitlemine, vastavalt oma tüübile ja tingimused;

}

Märksõna pügiaruannetele et kood ja skaneerida see erand, tuleb käsitleda allpool kirjeldatud, tingimusel, et see vastab selle tüübi. Identifikaator võib kasutada töötlemiseks koodiblokis argumentidena.

lõpuks

Nagu selgus eelmise peatüki saagi plokid püüda erandeid ja neid töödelda. Aga väga tihti tekib olukord, kus tuleks käivitada mõned koodi, olenemata sellest, kas nad olid püütud vigu. Sel on märksõna lõpuks. Seda kasutatakse, et suurendada väärtuste erinevate letid, sulgedes faile või võrguühendused.

See maatükk esitleb mitu saaki plokid leiutatud meetodid püüda erandeid. Näiteks, kood sisalduvad proovida tekitab ootamatu olukord nagu külm. Seejärel konsooli kuvatakse väljend «külmetuse!» Ja «Kas see midagi tuju umbes?». See tähendab, et lõpuks plokk täidetakse igal juhul.

Tegelikult viis vältida vallandada lõpuks seal. See on seotud lõpetamist virtuaalne masin. Leia kuidas seda rakendada, on võimalik internetis avatud ruume.

viska märksõna

Viska genereerib erand. Selle süntaks on järgmine:

viska uus NewException ();

Seal on loonud uue erandi tüüp NewException (). Selle tüübi võib kasutada sisaldub juba standard Java raamatukogu klasside ja eelnevalt määratletud arendaja oma toodangu.

See disain on osa kirjeldus mis tahes meetodit, mis kõne peaks siis ilmnevad proovida blokeerida, et oleks võimalik peatada seda.

märksõna viskab

Mis siis, kui protsessi arengut olukord, kus meetod võib visata erand, kuid ei suuda hakkama korralikult. Selleks, et meetod allkiri määrab sõna viskab ja tüüp võimalikud erandid.

See silt on omamoodi indikaator kliendi arendajad, et meetod ei ole võimelised teenindama samal erand. Lisaks, kui on vea tüüp on märgitud, siis kompilaator sunnib selgesõnaliselt taotlevad.

Püüa ressursse

Java versioon 7 arendajad lisanud oluline uuendus, kui ravi proovida blokeerida ressursse.

Paljud objektid on loodud Java, pärast kasutamist tuleks sulgeda säästa ressursse. Varem pidin võtma seda arvesse ja peatada need juhtumid käsitsi. Nüüd aga nad ilmusid AutoClosable liides. See aitab automaatselt sulgeda juba kasutatud esemed paigutatakse proovida blokeerida. Sellise lähenemise on saanud mugavam kirjutada koodi loetavuse on oluliselt suurenenud.

Oma klassi Java erandid

Loojad kirjeldatud programmeerimiskeel võttis arvesse mitmeid aspekte disain hädaolukordade puhul. Kuid kõik valikud vältida tulemuste sündmused ei tööta, nii et Java rakendatud võime määratleda oma erandid, on asjakohane vajadusi eelkõige kood.

Lihtsaim viis luua - pärivad kõige sobivam objektile kontekstis.

Seal juhtus pärivad Erand, klassi, mida kasutatakse, et määratleda oma erandeid. In MyException on kaks konstruktorid - vaikimisi teine - väitega msg tüüp String.

Seejärel avalikus klassiruumis FullConstructors rakendatud meetod f, mis sisaldab allkirja viskab MyException. See märksõna tähendab, et f saab visata nagu Java MyException erand. Peale selle meetodi keha toodetud teksti informatsiooni väljundi konsool ise ja tegeliku põlvkonna MyException, mida visata.

Teine meetod on veidi erinev esimene, et kui loote erand, see on möödas string parameeter, mis kajastub konsooli püüdmine. Peamiselt on selge, et f () ja g () on paigutatud kontrollige ja märksõna saagi konfigureeritud lüüa MyException. Töötlemise tulemusena on veateate konsooli:

Seega tuli lisada Java erandeid, tema enda poolt.

Arhitektuur erandid

Nagu kõik objektid Java, erandid on ka päritud ja on hierarhiline struktuur. Juurelement kõik vead visati see programmeerimiskeelt on klassi java.lang.Throwable. Temalt päritud kahte liiki - Error ja erand.

Viga - signaliseerib kriitiline viga ja on märkimata Java erandeid. Pealtkuulamine ja töötlemine selliste andmete enamasti toimub projekteerimise etapil ja ei vaja kasutusele viimases taotluse koodi.

Levinuim klassi loomiseks ja analüüsimiseks erandid on erand. Mis omakorda jaguneb mitmeks haruks, sealhulgas RuntimeException. Autor RuntimeException on runtime erandeid, see tähendab, programmi ajal ilmnevatele. Kõik klassid on saadud see on kinnitamata.

Sageli on ka erandeid

Java erandeid, mille loetelu on esitatud allpool, kasutatakse kõige sagedamini, et sa peaksid kirjeldama iga neist üksikasjalikult:

  • ArithmeticException. Nende hulka kuuluvad vead seotud tehteid. Kõige silmatorkavad näide - jagamist nulliga.
  • ArrayIndexOutOfBoundsException - üleskutse massiivi element number, mis on suurem kui kogu selle pikkuses.
  • ArrayStoreException - katse määrata mitteühilduvale element tüüpi massiivi.
  • ClassCastException - katse tuua vale tüüpi teise.
  • IllegalArgumentException - kasutades vale argument meetod kõne.
  • NegativeArraySizeException - erand kui loote hulgaliselt negatiivseid suurus.
  • NullPointerException - võimu viited null.
  • NumberFormatException - tekib siis, kui vale string konversioon täisarv.
  • UnsupportedOperationException - toimingut ei toetata.

Need näited esindavad tüüpi märkimata Java erandeid. Aga nii vaata kontrollida:

  • ClassNotFoundException - klassi ei leitud.
  • IllegalAcccessException - piirata juurdepääsu klassi.
  • InterruptedException - katkestamine voolu.
  • NoSuchFieldException - puuduvad vajalikud väljad.

Tõlgendamine erandid

Rääkides sagedamini erandid tuleb märkida, et nende tõlgendus disain, võib tajuda valesti. Järgmine on lühike nimekiri selgitatakse üksikasjalikumalt, kus võib olla ootamatu olukord.

NullPointerException. Väga Esimesel juhul, kui on olemas erand, on pöörduda viide objekt, mis on võrdne null. Samuti laieneb null klassi astmes meetodeid. NullPointerException võib visatakse puhul saamise ühepikkused null massiivi. Selliste olukordade vältimiseks perioodiliselt kontrollida saite null.

ArrayIndexOutOfBoundsException. Iga programm ei saa eksisteerida ilma kasutamise massiivid. Seega sagedast vaidluste see võib tekitada ja viga. Erandiks on juhud, kui arendaja üritab pääseda massiivi element, mis ei ole indeks nimekirja. Näiteks taotletud väärtus on üle või alla nulli pikkus. Väga sageli on tingitud asjaolust, et massiivi algab skoor null.

järeldused

Käitlemise Java erandid - võimas vahend keskkonna, mis suuresti kergendab tööd programmeerija ja võimaldab tal luua puhas ja ilma koodi vead. Kuidas sile ja stabiilne toimimine rakendus sõltub positsiooni ja mainet arendaja.

Muidugi, rohkem või vähem lihtne programmid jälgida ebatavalisi olukordi palju lihtsam. Aga suur automatiseeritud komplekse paar sada tuhat read on võimalik ainult tänu pikaajalise katsetamise ja silumine.

Java arvatud vea, millest tekivad mõned rakendused, mõned firmad pakuvad tasu, kui nad leiavad harrastajatele. Eriti teretulnud need, mis põhjustavad rikkumise julgeolekupoliitika tarkvara.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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