Java: izjema in njihova obdelava

Vsak program bo deloval stabilno le, če je njegova izvorna koda prilagojena in ni pogojev, ki bi lahko povzročili nepredvidene situacije. Proces ulova morebitnih napak se izvaja v fazi programiranja. V ta namen razvijalec upošteva vse predvidljive rezultate in poskuša omejiti napako tako, da ne more prekiniti programa ali povzročiti, da se sesuje.

Kadar se lahko zahteva obdelava izjem

V Javi lahko izjeme povzročijo nepravilni uporabniški vnos, pomanjkanje sredstev virov, potrebnih za delovanje programa, ali nenadna zaustavitev omrežja. Za udobno uporabo programa, ki ga je razvil razvijalec, je potrebno nadzorovati nastanek izrednih razmer. Potrošnik ne bi smel čakati na zaustavitev programa zavese, izgubiti podatke zaradi surovih izjem ali pa preprosto pogosto opaziti, da je nekaj šlo narobe.


Upravljanje z izjemami Java

Kaj je treba upoštevati? Jezik Java ima svojo vgrajeno funkcionalnost za upravljanje izjeme. Seveda se velik odstotek napak ujame še v fazi zbiranja, ko sistem samodejno napove, da ga ni mogoče uporabiti še naprej. Obstaja pa tudi vrsta izjeme, ki se pojavi, ko se program izvaja. Razvijalec mora biti sposoben napovedati to in oblikovati kodo tako, da ne povzroči napake, ampak jo obravnava na poseben način ali prenese upravljanje na drugo.podružnico V Javi tovrstno izjemo nalaga prevajalnik, zato so značilne težave znane in imajo lastno standardno izvedbeno shemo.

Tipične izjeme

Najpreprostejši primer, v katerem je mogoče dobiti izjemo, je delitev. Kljub svoji preprostosti, v izrazu, kot je delitelj lahko nič, kar bo pripeljalo do napake. No, če je njen videz mogoče napovedati in preprečiti. Vendar ta možnost ni vedno na voljo, zato je treba organizirati izjemo takoj, ko pride do "ničelne delitve".


V Javi mehanizem obdelave za prestrezanje napake izgleda takole:
  • objekt za izključitev se ustvari tako v predelu kot v vsakem drugem;
  • se naravni potek programa prekine;
  • mehanizem izključevanja poskuša najti alternativni način za razširitev kode;
  • ugotovitev varne izvedbe programa v obdelovalcu, delu ali bo obnovljena ali izvedba izjeme na poseben način.
  • Najenostavnejši primer napake bi lahko izgledal takole: če (a == null) vržemo novo NullPointerException (); Tukaj je spremenljivka a preverjena za inicializacijo, kar pomeni, da ni enaka referenci na objekt null. Če se ta situacija pojavi in ​​zahteva posebno obdelavo, se izključitev izvede z metom new NullPointerException ().

    Nekatere podrobnosti o ključnih besedah ​​

    Pri obravnavanju izjem so pogosto potrebne ključne besede za označevanje dejanj. V tem programskem jeziku obstaja pet:
  • Poskusite. Ta ključna beseda je že izpolnjena in pomeni, da gre za prehod na območje kode, ki ga lahkogenerira izjemo. Blok je kodrasti oklepaji {}.
  • Ulov. Prestreči zahtevano vrsto izjeme in jo ustrezno obdela.
  • Nazadnje. Ta ključna beseda je neobvezna in služi za izvajanje vseh področij kode, ki so zahtevana v vsakem primeru, tudi če se ne prestreže nobena izjema. Takoj po poskusu bloka.
  • Throw - omogoča ustvarjanje izključitve Java na katerem koli mestu kode.
  • Vrzi - ključ, ki se vnese v podpis metode. To pomeni, da lahko naslednja koda vrgne izjemo na podano vrsto Jave. Ta oznaka služi kot znak za razvijalce, kar je treba upoštevati - metoda morda ne bo delovala tako, kot se pričakuje.
  • Poskusi

    Izjema v Javi seveda predvideva, da bo posebej obdelana. To je najbolj primerno, če je območje kode blokirano v bloku. Ki lahko vsebuje izjemo. Pri izvajanju takšne kode virtualni stroj najde nepredvideno situacijo, razume, da je v kritičnem bloku in prenese nadzor na območje z obdelavo.
    Java koda je ovita v poseben poskusni blok, v katerem se lahko generira izjema. Tako je takoj postavil več nepredvidenih situacij, ki bodo ujete na enem mestu, ne da bi prekoračile kodo. Najbolj značilna koda s procesno enoto je taka: try {//To bo identificiralo kodo, ki lahko ustvari izjemo} catch (Type_exclusion_1 identifier_1) {//Ta obdelava izjeme se opravi glede na vrsto in pogoje; } ulov (vrsta izjeme_2)identifier_2) {//Tukaj se obdelava izjeme opravi glede na njeno vrsto in pogoje; Ključna beseda ulova določa, da bo koda izjeme obdelana, kot je opisano spodaj, pod pogojem, da se ujema z njeno vrsto. ID lahko uporabite v bloku kodne kode kot argumente.

    Nazadnje

    Kot je postalo jasno iz prejšnjega poglavja, so izjeme pri ulovu ulova in obdelave. Toda zelo pogosto pride do situacije, ko mora šifra prestati, ne glede na to, ali so bile napake ujete. Za to je ključna beseda končno. Uporablja se za povečanje vrednosti različnih števcev, zapiranje datotek ali omrežnih povezav.
    V tem oddelku je več blokov ulova z izmišljenimi izjemami ulova. Na primer, koda, ki jo vsebuje poskus, ustvari nepredvidljiv hladni primer. Potem bodo izrazi "Ujetje hladno!" In "Je to nekaj, za kar navijamo?" Prikazano v konzoli. To pomeni, da se blok končno izvede v vsakem primeru. Pravzaprav je način, kako se izogniti zagonu, končno tam. Povezan je z dokončanjem virtualnega stroja. Iskanje, kako ga izvajati, je mogoče najti na internetu.

    Ključna beseda

    Vrzi generira izjemo. Skladnja izgleda takole: vrni novo NewException (); To ustvari novo izjemo z vrsto NewException (). Kot tip se lahko že uporablja v standardnih razredih Java knjižnic in ga je predhodno opredelil razvijalec lastne produkcije. Takšna konstrukcija je vključena v opis katerekoli metode, katere izziv bi se moral pojaviti v poskusnem bloku, da bi bilpriložnost za njegovo prestrezanje.

    Ključni meti

    Kaj storiti, če je v procesu načrtovanja prišlo do situacije, ko lahko metoda ustvari izjemo, vendar je ne more pravilno obdelati. Za to so v podpisu metode navedene besede met in vrsta možne izključitve. Ta oznaka je poseben vodnik za razvijalce odjemalcev, da metoda ne more obdelati lastne izjeme. Poleg tega, če je vrsta napake preverjena, jo bo prevajalnik prisilil, da jo izrecno poda.

    Poskusite z viri

    V Javi 7 so razvijalci vključili tako pomembno inovacijo kot obdelavo bloka poskusov z viri. Veliko ustvarjenih objektov v Javi, je treba po njihovi uporabi zapreti, da bi prihranili vire. Prej je bilo treba to upoštevati in ustaviti take primere ročno. Zdaj imajo vmesnik AutoClosable. Pomaga samodejno zapiranje prej uporabljenih objektov, ki se nahajajo v bloku try. Zaradi tega pristopa je pisanje kode postalo bolj priročno, njegova berljivost se je znatno povečala.

    Razredi lastne izjeme Java

    Ustvarjalci opisanega programskega jezika so pri načrtovanju vrst nepredvidenih dogodkov upoštevali številne vidike. Vendar pa vse različice rezultatov dogodkov ne bodo preprečile, zato ima Java možnost, da določi lastne izjeme, ki ustrezajo točno potrebam določene kode. Najlažji način za ustvarjanje je podedovati iz najbolj relevantnega konteksta objekta.
    Prišlo je do zaporedja izjeme, razreda, ki se uporablja za definiranje lastnih izjem. MyException ima dva konstruktorja - enega privzeto,drugi s tipom argumenta String. Potem javni razred FullConstructors implementira metodo f, katere podpis vsebuje vrzel MyException. Ta ključna beseda pomeni, da lahko f vrne izjemo na vrsto MyException Java. Potem v telesu metode izhodno besedilno informacijo na konzolo in samo generacijo MyException, s pomočjo meta. Druga metoda se nekoliko razlikuje od prve, da pri ustvarjanju izjeme posreduje parameter niza, ki bo prikazan v konzoli pri piščali. V glavnem je jasno, da sta f () in g () nameščena v poskusnem bloku, ključna beseda catch pa je konfigurirana za ulov MyException. Rezultat obdelave je rezultat sporočila o napaki v konzoli:
    Tako je bilo mogoče dodati izključitev Java, ki ste jo ustvarili sami.

    Arhitektura izjeme

    Tako kot vsi objekti v Javi so tudi izjeme podedovane in imajo hierarhično strukturo. Korenski element vseh napak, ki se vržejo v ta programski jezik, je razred java.lang.Throwable. Od njega podedujemo dve vrsti - Error in Exception.
    Napaka - opozarja vas na kritične napake in ne preverja izključitve Java. Prestrezanje in obdelava takih podatkov je v večini primerov v pripravi in ​​ne zahteva uvedbe kodeksa končnega programa. Najpogosteje uporabljen razred za ustvarjanje in analizo izjem je Izjema. Ki je po drugi strani razdeljen na več vej, vključno z RuntimeException. RuntimeException vključuje izključitve izvajalnega okolja, ki se pojavijo med izvajanjem programa. Vsi razredi, ki so bili podedovani od tega, so ne-nasilni.

    Pogosto se pojavljajoIzjema

    V izjemnih primerih se Java, katere seznam je predstavljen spodaj, najpogosteje uporablja, zato je smiselno podrobno opisati vsako od njih:
  • ArithmeticException. To vključuje napake, povezane z aritmetičnimi operacijami. Najbolj presenetljiv primer je delitev na nič.
  • ArrayIndexOutOfBoundsException - Sklic na številko elementa matrike, ki presega njegovo skupno dolžino.
  • ArrayStoreException - poskus dodelitve elementa matrike nezdružljivega tipa.
  • ClassCastException je poskus nepravilnega priprave enega tipa v drugega.
  • IllegalArgumentException - uporabite napačen argument pri klicanju metode.
  • NegativeArraySizeException je izjema pri ustvarjanju niza negativnih dimenzij.
  • NullPointerException - Uporaba sklicevanja na ničelno je napačna.
  • NumberFormatException - se pojavi, ko je niz nepravilno pretvorjen v številko.
  • ​​
  • UnsupportedOperationException - operacija ni podprta.
  • Ti primeri niso preverjeni za vrste izjem Java. Toda to izgleda preverjeno:
  • ClassNotFoundException - razred ni bil najden.
  • IllegalAcccessException - Omejevanje dostopa do razreda.
  • InterruptedException - prekine tok niti.
  • NoSuchFieldException - ni zahtevanega polja.
  • Razlaga izjem

    Ko govorimo o pogostih izjemah, je treba opozoriti, da je njihova interpretacija v času razvoja lahko napačno razumljena. Spodaj je majhen seznam, ki podrobneje pojasnjuje, kdaj lahko pride do nenačrtovane situacije.
    NullPointerException. Prva izjema, kadar obstaja izjema, je sklic na referenco na objekt, ki je enaknull To velja tudi za metode ničelne stopnje razreda. NullPointerException se lahko vrže in v primeru pridobitve dolžine polja je nič. Izogibanje takšnim situacijam bo pomagalo občasno skenirati predmete za vrednost nič. ArrayIndexOutOfBoundsException. Vsak program ne more obstajati brez uporabe nizov. Zato lahko pogosta obravnava le-teh povzroči napake. Obstaja izjema, ko razvijalec poskuša dostopiti do elementa matrike, ki ni na seznamu indeksov. Zahtevana vrednost je na primer nad dolžino ali manj kot nič. Zelo pogosto izhaja iz dejstva, da račun v polju začne iz nič.

    Sklepi

    Obdelava izjem Java - zmogljivo orodje, ki močno olajša delo programerju in mu omogoča ustvarjanje čiste kode in brez napak. Stanje in ugled podjetja razvijalca sta odvisna od tega, kako gladka in stabilna je funkcija aplikacije.
    Seveda je v bolj ali manj preprostih programih veliko lažje slediti situacijam zunanjega izvajanja. Toda v velikih avtomatiziranih kompleksih za več sto tisoč vrstic je to mogoče le zaradi dolgotrajnega odpravljanja napak in testiranja. Za izjeme Java, napake, ki se pojavijo v nekaterih aplikacijah, posamezna podjetja ponujajo nagrade, ko jih najdejo navdušenci. Posebej cenjene so tiste, ki povzročajo kršitev varnostne politike programskega paketa.

    Sorodne publikacije