OrdenagailuakProgramazioa

Java: salbuespenak eta haien manipulazioa

Edozein programa stably ibiliko da iturburu-kodea arazten badago soilik, eta ez dira ezusteko egoerak eragin ditzakete, baldintza ez. posible porrotak harrapatzeko prozesua egiten da, programazio agertokian. Horretarako, sustatzailearen, kontua espero emaitza guztiak hartzen eta akats eragina mugatzeko, beraz, ezin da programaren funtzionamendua oztopatzeko, edo bere kolapso ekar saiatzen da.

Noiz salbuespen manipulazio behar izatea

Java ere, salbuespen bat izango erabiltzailearen sarrera okerra eragin daiteke, ez baliabide bat edo bat-bateko sare deskonektatzeko programa beharra. erabilera erosoa aplikazio sustatzailearen sortutako baterako, larrialdi egoera agerraldia kontrolatzeko behar duzu. Kontsumitzaileak ez dute aplikazio bat irten itxaron, datuak landu gabeko salbuespen bat, edo, besterik mezu baten parte ageri adieraziz zerbait gaizki joan ondorioz galtzen.

Handling Java salbuespenak

Zer kontuan hartu? Java lengoaia bere eraiki-salbuespen manipulazio funtzionalitate propioa du. Jakina, akats ehuneko handi bat da, beste compilation etapa harrapatu, sistemak automatikoki jakinaraziko erabilera hori dela jada ez da posible. Baina bada salbuespen-mota hori exekuzio gertatzen da. Sustatzailearen da aurrea hartzea eta kodea diseinatzeko, beraz, ez zuen errore bat eragingo gai izan behar du, eta maneiatzen du, modu berezi batean eta bestean adar kontrol baino gehiago banatu.

Java, hau da konpiladoreak inposatutako salbuespen bat harrapatzeko, beraz, ohiko arazo ezagunak dira eta estandar bat ariketa ereduak dute.

bazterketarik tipikoa

Errazena adibide, eta bertan, salbuespen bat lortu ahal izango duzu - zatiketa hau. Bere sinpletasun arren, dagokionez, banantzeko bezala, zero, egingo den errore bat eragingo daitezke. Beno, ahal bada iraganean sorrera aurreikusteko eta saihesteko. Baina aukera hau ez da beti eskuragarri, beraz ezik harrapatzeko zuzenean antolatu behar diren kasuetan "arrail zero arabera".

Java mekanismo prozesatzeko error atzematen itxura hau du:

  • arazoak izaten ari da salbuespena objektuaren sortzen da, baita beste edozein bezala;
  • Programaren ikastaro naturala eten da;
  • bazterketa mekanismo alternatiboa modu kodea jarraitzeko bilatzen saiatzen da;
  • Aurki programaren exekuzioa segurua da prozesadorea, lana edo zaharberritu, edo salbuespen gauzatzeko gertatuko da, modu berezi batean.

Errore bat sortzeko itxura hau liteke adibide errazena:

bada (== null a)

bota NullPointerException berrian ();

Hemen, aldagai bat hasieratzeko tan hautatzean, hau da, Ez da nulua objektu bat erreferentzia den ala ez. Egoera hori sortzen bada egin da eta tratamendu berezia behar, salbuespen bat da bota bat NullPointerException new bota zituzten ().

keywords buruzko xehetasun batzuk

Salbuespen aurre egitean askotan da beharrezkoa keyword Java erabiltzeko ekintza jakin bat aipatzeko. euren bost programazioaren hizkuntza honetan:

  • Saiatu. gako hau dagoeneko bildu zen, eta trantsizio bat kodearen atal bat dela salbuespen bat bota dezake sartu dela esan nahi du. Bloke giltza mugatua {}.
  • Harrapatu. nahi den salbuespen mota atzematen ditu eta kudeatzeko era egokian.
  • Azkenik. gako hau hautazkoa da eta kodea, eta horrek eman behar da, hala ere pieza jakin bat egiteko erabiltzen da, nahiz eta salbuespena ez da harrapatu. Added zuzenean saiatu bloke ondoren.
  • Bota - Java salbuespenak sortuko edozein lekutatik aukera ematen dizu.
  • Botatzen - keyword hori metodoa sinadura jartzen. kode hori mota honetan Java salbuespen bat bota dezake esan nahi du. metodoaren ezin lan haren espero bezala - marka hau behar duten kontuan hartu beharreko garatzaileei seinale gisa balio du.

saiatu batera Harrapaketa

Java salbuespenak to oharra, naturalki bere gain hartzen ahal dela, modu berezi batean maneiatzen dira. modu egokiena da egin behar, kodea atalean hesituta dago bada off bloke batean. Zein salbuespena izan ditzake. Noiz kode hau exekutatu, makina birtualak ustekabeko egoerak topatuko, ulertzen ez dagoela bloke kritiko bat da eta transferentziak prozesatzeko batera geltokira kontrolatzeko.

Java kodea da berezi bat bloke saiatu, horren barruan, salbuespen bat izan daiteke bilduta. Horrela, hainbat ezusteko egoeretan duten toki berean, ez raspolzayas kodea harrapatu jarriko dio.

prozesatzeko unitate kodea tipikoena honako hau da:

saiatu {

// Hemen kode batzuk salbuespen bat sortzen da

} Catch (Tip_isklyucheniya_1 identifikator_1) {

// Hemen ez salbuespen manipulazioa da, bere mota eta baldintza arabera;

} Catch (Tip_isklyucheniya_2 identifikator_2) {

// Hemen ez salbuespen manipulazioa da, bere mota eta baldintza arabera;

}

Hitz gakoa harrapaketa kodea duten txostenak, eta arakatu salbuespen bat da, tratatu beharreko behean azaltzen den bezala, baldin eta betetzen dela bere mota batera. identifikatzailea kodea blokea argumentu gisa prozesatzeko erabil daiteke.

Azkenik

argi geratu zen bezala, aurreko kapitulu batetik, harrapaketa bloke harrapatzeko salbuespenak eta horiek prozesatu. Baina oso maiz, egoera sortzen non kodea batzuk abiarazi behar dute, akatsak harrapatu ziren ala ez kontuan hartu gabe. Horretarako ez hitzarekin azkenik da. It hainbat kontagailuen balioak handitzeko, fitxategiak edo sare-konexioak ixtean erabiltzen da.

lursail hau aurkezten hainbat harrapaketa bloke asmatu metodo harrapatzeko salbuespenak. Adibidez, saiatu jasotako Kodea ustekabeko egoerak Cold esaterako sortzen. Ondoren, kontsola agertuko dira adierazpen «harrapatu hotz!» Eta «Da zerbait animatu? Buruz». Hau da, azkenik blokean dago, nolanahi ere exekutatu.

Izan ere, modu bat eragiteko, azkenik han saihesteko. Da makina birtual amaitzean lotuta. Aurki nola ezartzeko, posible da Internet espazio libreak orrian.

Bota gako

Bota salbuespen bat sortzen. Bere sintaxia honako hau da:

bota NewException berrian ();

Ez dago mota NewException salbuespen berri bat sortuko da (). As mota bat erabili ahal izango da dagoeneko estandarra Java liburutegia klaseak sartzen da eta aurretik bere ekoizpen propioak sustatzailearen definitzen.

Diseinu hau edozein metodo deskribapena, zein deia gero saiatu bloke barruan gertatu behar, ordena atzematen ahal izateko zati da.

Hitz gakoa botatzen

Zer egoera bat non metodoa salbuespen bat bota dezake, baina ez dira behar bezala kudeatzeko gai garapena prozesuan bada. Horretarako, metodo sinadura ere zehazten hitzaren botatzen eta salbuespenak posible mota.

Etiketa hori bezero garatzaileentzat adierazle-mota bat da hori metodoa ez da euren salbuespen bera kudeatzeko gai. Horrez gain, akats-mota aukeratuta badago, orduan konpilatzailea esplizituki behartzeko izango da eskatu.

baliabideak saiatuko

Java bertsioa 7 Garatzaileei barne berrikuntza nagusietako bat, baliabideak tratamenduaren saiatu bloke gisa.

objektu askok Java sortzen dira, erabilera itxi behar aurretik zituela baliabideak aurrezteko. Aurretik hau kontuan hartu eta gelditu instantzia horiek eskuz izan zuen. Orain, ordea, AutoClosable interfazea agertu dute. automatikoki itxi saiatu bloke batean jartzen dagoeneko erabili objektu laguntzen du. Planteamendu honen bidez erosoagoa bihurtu da kodea idazteko bere irakurgarritasuna nabarmen hazi da.

klaseak Norberak Java salbuespenak

deskribatu programazio hizkuntza sortzaileek kontua diseinu larrialdietan moten alderdi asko hartu. Hala ere, aukera guztiak saihesteko ekitaldiak emaitza ez du funtzionatzen, beraz Java beren salbuespenak definitzeko gaitasuna ezarri, kode zehatz beharretara egokia da.

Modu errazena egiterako - to egokiena oinordetzan objektuaren testuinguruaren.

Badira gertatu den salbuespena oinordetzan, klase hori zure salbuespenak definitzeko erabiltzen da. lehenetsi bat, bigarren - - argumentu msg mota String batera MyException bi eraikitzaileak ditu.

Ondoren, ikasgelan publiko FullConstructors ezarri metodoa f, eta horrek sinadura dauka botatzen MyException. gako Horrek esan f duten Java MyException salbuespen bezala bota dezake. Gainera, metodoa gorputzean ekoiztu testu informazio kontsola bera eta benetako belaunaldi MyException, bota duen irteera.

Bigarren modua lehena denean salbuespena sortzean, hura gainditu kate parametro bat, kontsola islatuko da harrapatzeko at desberdina da. nagusia, bistan da f () eta g dagoela () saiatu egiaztapena batean jarriko dira eta gako harrapaketa MyException harrapatzeko konfiguratuta. prozesatzeko emaitza da error kontsola mezu bat erakusteko:

Horrela Java salbuespenak gehitzeko, idazleak berak etorri da.

Arkitektura salbuespenak

Java objektu guztiak bezala, salbuespenak ere egin heredatu eta egitura hierarkikoa dute. erro programazio hizkuntza hau bota, akats guztien elementua class java.lang.Throwable da. zion bi mota heredatu - Akatsa eta salbuespena.

Akatsa - the error kritikoa seinaleak eta markatu gabe Java salbuespen dela. Atzematea eta prozesatzeko datu horiek kasu gehienetan diseinu fasean gertatzen da eta ez du azken aplikazioaren kodea sartuz beharra.

gehien erabiltzen sortzeko eta salbuespenak aztertzeko klasea salbuespena da. Eta, aldi berean, hainbat adar, RuntimeException barne banatuta. RuntimeException By dira exekuzio salbuespenak, hau da, programan zehar gertatzen. bertatik eratorritako klase guztiak unverifiable dira.

Askotan ez dira salbuespenak

Java salbuespenak ere, horietatik zerrendaren azpian aurkezten da, erabiltzen dira gehienetan, beraz, horietako bakoitzean deskribatzeko behar duzu zehatz-mehatz:

  • ArithmeticException. Horien artean, eragiketa aritmetikoak lotutako akatsak. Gehien glaring adibidez - zero by zatiketa.
  • ArrayIndexOutOfBoundsException - array elementu kopurua bere luzera guztira gainditzen duen helegitea.
  • ArrayStoreException - saiakera bateraezinak elementu array mota bat esleitzeko.
  • ClassCastException - okerreko mota bat ekartzeko beste saiakera bat.
  • IllegalArgumentException - okerreko argumentua metodoa deialdian erabiliz.
  • NegativeArraySizeException - salbuespen bat denean, tamaina negatiboak sorta bat sortzen duzunean.
  • NullPointerException - erreferentziak erabiltzea null.
  • NumberFormatException - gertatzen da okerreko katea bihurtze bat osokoa.
  • UnsupportedOperationException - Eragiketa ez da onartzen.

Adibide hauek markatu gabe Java salbuespen mota adierazten. Baina hain itxura hautatuta:

  • ClassNotFoundException - Class aurkitu.
  • IllegalAcccessException - klase sarbidea mugatzeko.
  • InterruptedException - fluxua eten.
  • NoSuchFieldException - badira derrigorrezko eremua da.

salbuespenak interpretazioa

Maiz topatu salbuespenak ari garela kontuan izan behar dute beren diseinuan interpretazio hori, hautematen daiteke gaizki. Hurrengo zerrenda labur bat xehetasun gehiago, eta han ustekabeko egoera bat izan daiteke ere azaltzen da.

NullPointerException. Oso lehen kasua denean, salbuespen bat da, da erreferentzia helegitea dela null berdina objektu bat da. Halaber, zero class adibidez metodo hedatzen da. NullPointerException berdina luzera nulua array bat lortzea kasuan bota daitezke. hala nola, egoerak saihesteko dira aldizka egiaztatu nulua guneak.

ArrayIndexOutOfBoundsException. Edozein programa ezin matrizeak erabili gabe existitzen. Ondorioz, maiz egiten jo sortzeko eta akats daiteke. Salbuespena gertatzen sustatzailearen array elementu bat ez da indize zerrendan sartzeko saiatzen denean. Adibidez, eskatutako balio gainetik edo zero luzera txikiagoa da. Askotan, izan ere, array zero punturekin hasten emaitza da.

aurkikuntza

Handling Java salbuespenak - indartsu bat tresna ingurumena, bertan programatzailea lana asko errazten eta ahalbidetzen garbi bat eta kodea akatsik gabekoa sortu nahi zion. Nola leun eta egonkorra funtzionamendu aplikazio On egoera eta ospe sustatzailearen araberakoa da.

Jakina, bat gehiago edo gutxiago programak erraz anormal egoerak askoz errazagoa traza. Baina batzuk ehun mila lerro konplexu automatizatu handietan posible da epe luzeko probak eta arazketa baten ondorioz bakarrik.

Java salbuespen error bertatik aplikazio batzuk sortzen, enpresa batzuek saria eskainiko denean zaleak aurkitu dute. Bereziki segurtasun politika software urratzen eragiten duten estimatzen.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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