Kompjutera, Programimi
Java: përjashtime dhe trajtimi i tyre
Çdo program do të veprojë në mënyrë të qëndrueshme vetëm nëse kodi burim është debugged, dhe nuk ka kushte që mund të shkaktojnë situata të paparashikuara. Procesi i kapjen e dështimet e mundshme është kryer në fazën e programimit. Për ta bërë këtë, zhvilluesi merr parasysh të gjitha rezultatet e pritura dhe përpjekjet për të kufizuar efektin e gabimit në mënyrë që ajo nuk mund të ndërhyjë në funksionimin e programit, ose të çojë në rrëzimin e saj.
Kur ju mund të kenë nevojë trajtimin përjashtim
Në Java, një përjashtim mund të shkaktohet nga të dhëna të pasakta përdoruesi, nuk ka nevojë për një burim apo të papritur program të rrjetit shkyçjes. Për përdorim të rehatshëm krijuar nga aplikimit zhvilluesi i saj, ju duhet të kontrollojë shfaqjen e situatave emergjente. Konsumatori nuk duhet të duhet të presë për të lënë një kërkesë, për të humbur të dhënat si rezultat i një përjashtim unhandled, ose vetëm pjesë e një mesazhi shfaqet duke deklaruar se diçka shkoi keq.
Trajtimi përjashtime Java
Çfarë duhet të marrin në konsideratë? Gjuha Java ka vet ndërtuar në funksionalitetin e saj trajtimin përjashtim. Natyrisht, një përqindje e madhe e gabimit është kapur nga një tjetër fazë të hartimit, sistemi automatikisht do të njoftojë që e përdorin atë është më e mundur. Por nuk është ky lloj përjashtim që ndodh në kohën e duhur. Zhvilluesi duhet të jetë në gjendje të parashikojnë atë dhe për të hartuar kodin në mënyrë që ajo nuk ka shkaktuar një gabim, dhe trajtuar atë në mënyrë të veçantë dhe të dorëzuar kontrollin në një tjetër degë.
Në Java, kjo është imponuar nga përpiluesit për të kapur një përjashtim, kështu që problemet tipike janë të njohura dhe kanë një standard modele stërvitje.
përjashtimet tipike
Shembulli thjeshtë, në të cilën ju mund të merrni një përjashtim - këtë ndarje. Megjithë thjeshtësinë e saj, në kuptimin, si një ndarës, mund të jetë zero, e cila do të rezultojë në një humbje. E pra, në qoftë se është e mundur të parashikojnë shfaqjen e të kaluarës dhe për të parandaluar. Por ky opsion nuk është gjithmonë në dispozicion, kështu kapjen përjashtim duhet të organizohet direkt në rast të "ndarjes nga zero".
Mekanizmi Java për të kapur gabim gjatë përpunimit të duket si ky:
- Objekti grumbull përjashtim është krijuar, si dhe ndonjë tjetër;
- Kursi i natyrshëm i këtij programi është ndërprerë;
- mekanizëm përjashtimi është duke u përpjekur për të gjetur një mënyrë alternative për të vazhduar kodin;
- Gjeni një ekzekutimin e sigurt të programit në procesor, punë apo restauruar, ose do të ndodhë realizimin e përjashtim në një mënyrë të veçantë.
Shembulli i thjeshtë i krijimit të një gabim mund të duket kështu:
nëse (a pavlefshme ==)
hedhin NullPointerException ri ();
Këtu, e ndryshueshme e një është e kontrolluar në inicializimit, dmth, nuk është nëse referencë në një objekt null. Nëse kjo situatë ka lindur dhe kanë nevojë për trajtim të veçantë, një përjashtim është hedhur nga një hedhin NullPointerException të re ().
Pak detaje në lidhje me fjalë kyçe
Kur kanë të bëjnë me përjashtime është shpesh e nevojshme për të përdorur Java fjalen për t'iu referuar një veprim të caktuar. Kjo gjuhë e pesë programet e tyre:
- Provoni. Kjo fjalë kyçe është takuar tashmë, dhe kjo do të thotë një tranzicion në një seksion të kodit që mund të hedhin një përjashtim. Bllok formatimin kufizuara {}.
- Catch. Ajo kap llojin e dëshiruar përjashtim dhe për të trajtuar atë në mënyrë të përshtatshme.
- Së fundi. Kjo fjalë kyçe është opsionale dhe është përdorur për të kryer një pjesë të caktuar të kodit, e cila është e nevojshme gjithsesi, edhe në qoftë se asnjë përjashtim nuk është kapur. Shtuar direkt pas bllok provoni.
- Hidhe - ju lejon të krijoni përjashtimet Java nga kudo.
- Hedh - një fjalen që është vendosur në metodën e nënshkrimit. Kjo do të thotë se kodi në vijim mund të hedhin një përjashtim të këtij lloji Java. Kjo shenjë shërben si një sinjal për zhvilluesit që duhet të kihet parasysh - metoda nuk mund të punojnë ashtu siç pritet prej tij.
Infektues me një përpjekje
Release për përjashtime Java, natyrisht supozon se ajo do të trajtohet në mënyrë të veçantë. Mënyra më e përshtatshme për të bërë atë, në qoftë se seksioni kodi është rrethuar në një bllok. Të cilat mund të përmbajnë një përjashtim. Kur ju drejtuar këtë kod, makinë virtuale do të gjeni një situatë të papritur, të kuptojnë se ka një bllok kritike dhe transferon kontrollin në stacionin me përpunimin.
Kodi Java është e mbështjellë në një përpjekje të veçantë bllok, brenda të cilit mund të jetë një përjashtim. Kështu, ai vendosi disa situata të paparashikuara që do të kapur në të njëjtin vend, jo raspolzayas kodit.
Kodi më tipike të njësisë përpunuese është si vijon:
provoni {
// Këtu është një kod që mund të gjenerojnë një përjashtim
} Kapur (identifikator_1 Tip_isklyucheniya_1) {
// Këtu ka trajtimin përjashtim, sipas llojit dhe kushteve të tij;
} Kapur (identifikator_2 Tip_isklyucheniya_2) {
// Këtu ka trajtimin përjashtim, sipas llojit dhe kushteve të tij;
}
kapur Keyword raporton se kodi, dhe skanoni atë për një përjashtim, që do të trajtohen siç përshkruhet më poshtë, me kusht që ajo është në përputhje me llojin e saj. Identifikues mund të përdoret në përpunimin e bllok kodin si argumente.
më në fund
Siç u bë e qartë nga kapitulli i mëparshëm, blloqe kapur kapur përjashtime dhe procesin e tyre. Por shumë shpesh situata lind ku duhet të drejtuar një kod, pavarësisht nëse ata janë kapur gabime. Për këtë ekziston fjalen fund. Ajo është përdorur për të rritur vlerat e sporteleve të ndryshme, duke mbyllur fotografi apo lidhjet e rrjetit.
Ky komplot paraqet disa blloqe kapur shpikur metoda të kapur përjashtime. Për shembull, kodi përfshira në përpjekje gjeneron një situatë të papritur të tilla si Ftohtë. Pastaj, konsol do të shfaqet shprehja «kapur të ftohtë!» Dhe «A është kjo diçka arsye për të festuar?». Kjo është, në fund bllok është ekzekutuar në çdo rast.
Në fakt, një mënyrë për të shmangur duke shkaktuar në fund atje. Ajo është e lidhur me përfundimin e makinës virtuale. Gjej të si për të zbatuar atë, kjo është e mundur në hapësirat e internetit të hapura.
Hidhe fjalen
Hidhe gjeneron një përjashtim. Sintaksa e tij është si vijon:
hedhin NewException ri ();
Nuk është krijuar një përjashtim të ri të tipit NewException (). Si një lloj mund të përdoret tashmë është përfshirë në standarde klasat Java e bibliotekës dhe të përcaktuara më parë nga zhvilluesi i prodhimit të vet.
Ky dizajn është pjesë e përshkrimit të çdo metode, e cila thirrja pastaj duhet të ndodhë brenda bllokut provoni, në mënyrë që të jetë në gjendje për të kapur atë.
Keyword hedh
Çfarë nëse në procesin e zhvillimit të një situatë ku metoda mund të hedhin një përjashtim, por nuk janë në gjendje për të trajtuar siç duhet. Për këtë qëllim, në metodën nënshkrimin specifikon fjala hedh dhe lloji i përjashtimeve të mundshme.
Ky emërtim është një lloj treguesi për zhvilluesit klientit që metoda nuk është në gjendje për të trajtuar përjashtim tyre njëjtë. Përveç kësaj, në qoftë se lloji gabimi është i kontrolluar, atëherë përpiluesit do të detyrojë në mënyrë eksplicite të kërkoni për të.
Mundohuni të burimeve
Versioni Java 7 zhvilluesve kanë përfshirë një risi të madhe, si një bllok trajtim provoni me burime.
Shumë objekte janë krijuar në Java, pas përdorimit duhet të mbyllen për të ruajtur burimet. Më parë ajo kishte për të marrë këtë parasysh dhe të ndaluar këto raste me dorë. Tani, megjithatë, ata u shfaq ndërfaqe AutoClosable. Kjo ndihmon për të mbyllur automatikisht objektet e përdorura tashmë të vendosura në një bllok provoni. Përmes kësaj qasjeje është bërë më i përshtatshëm për të shkruar kodin në lexueshmëri e tij është rritur ndjeshëm.
Klasat vetanake Përjashtimet Java
Krijuesit e gjuhën e programimit përshkruar mori parasysh shumë aspekte të llojeve të projektimit të emergjencave. Megjithatë, të gjitha mundësitë për të parandaluar rezultati i ngjarjeve nuk do të punojë, kështu që në Java zbatuar aftësinë për të përcaktuar përjashtime e tyre, është e përshtatshme për nevojat e kodit të veçantë.
Mënyra më e thjeshtë për të krijuar - për të trashëguar nga më të përshtatshme për kontekstin e objektit.
Ka ndodhur për të trashëguar nga përjashtim, klasë që është përdorur për të përcaktuar përjashtime tuaj. Në MyException ka dy ndërtuesit - një default, e dyta - me Argumenti tipit msg String.
Pastaj, në metodën f FullConstructors klasë publik zbatuar, i cili përmban firmën hedh MyException. Kjo fjalë kyçe do të thotë se f mund të hedhin si Java MyException përjashtim. Më tej, në trup metodë prodhuar tekst prodhimit të informacionit të vetë tastierë dhe MyException aktuale të gjenerimit, duke hedhin.
Metoda e dytë është paksa e ndryshme nga një të parë që kur ju krijoni një përjashtim, ajo është e kaluar një parametër varg, të cilat do të reflektohen në tastierë në kapjen. Në kryesore është e qartë se f () dhe g () janë të vendosur në një kontrollimin përpiqen dhe të kapur fjalen konfiguruar për të kapur MyException. Rezultati i përpunimit është për të shfaqur një mesazh gabimi në tastierë:
Kështu ajo erdhi për të shtuar përjashtime Java, me dorën e vet.
përjashtime Arkitekturë
Ashtu si me të gjitha objektet në Java, përjashtime janë trashëguar gjithashtu dhe kanë një strukturë hierarkike. Elementi rrënjë e të gjitha gabimeve hedhur në këtë gjuhë programimi është klasë java.lang.Throwable. Trashëguar nga vete dy lloje - Error dhe përjashtim.
Error - sinjalizon gabim kritik dhe është përjashtime pakontrolluar Java. Përgjimi dhe përpunimin e të dhënave të tilla në shumicën e rasteve ndodh në fazën e projektimit dhe nuk ka nevojë për futjen në kodin përfundimtar aplikimit.
Më e përdorur zakonisht klasë për krijimin dhe analizimin përjashtimet është përjashtim. E cila, nga ana tjetër, është e ndarë në disa degë, duke përfshirë RuntimeException. Nga RuntimeException përjashtime Runtime, që është, ndodhin gjatë programit. Të gjitha klasat rrjedhin prej saj janë të paverifikueshme.
Shpesh ka përjashtime
Në përjashtime Java, lista e të cilave është paraqitur më poshtë, janë përdorur më shpesh, kështu që ju duhet të përshkruajnë secilin prej tyre në detaje:
- ArithmeticException. Këto përfshijnë gabime që lidhen me operacionet aritmetike. Më i dukshëm Shembulli - ndarja nga zero.
- ArrayIndexOutOfBoundsException - një apel në numrin element array që tejkalon totalin e gjatësisë së saj.
- ArrayStoreException - përpjekje për të caktojë një lloj të papajtueshme element të vektorit.
- ClassCastException - një përpjekje për të sjellë të gabuar një lloj në një tjetër.
- IllegalArgumentException - duke përdorur argumentin e gabuar në thirrjen metodë.
- NegativeArraySizeException - një përjashtim kur ju krijoni një grup të madhësisë negative.
- NullPointerException - keqpërdorimi i referencave të null.
- NumberFormatException - ndodh kur një varg konvertimit gabuar për Integer.
- UnsupportedOperationException - operacion nuk është i mbështetur.
Këta shembuj paraqesin llojet e përjashtimeve pakontrolluara Java. Por, kështu që shikoni kontrolluar:
- ClassNotFoundException - Class nuk u gjet.
- IllegalAcccessException - kufizojë aksesin në klasë.
- InterruptedException - ndërprerja e rrjedhës.
- NoSuchFieldException - nuk ka fushë e kërkuar.
Interpretimi i përjashtimeve
Duke folur për përjashtime të hasura shpesh duhet theksuar se interpretimi i tyre në hartimin, mund të perceptohet gabimisht. Next është një listë e shkurtër shpjeguar më në detaje, ku nuk mund të jetë një situatë e papritur.
NullPointerException. Rasti i parë kur ka një përjashtim, është për të apeluar në një referencë për një objekt që është e barabartë me null. Ajo shtrihet edhe në metodat e zero klasës shembull. NullPointerException mund të hidhet në rast të marrjes së një gjatësi të barabartë array null. Për të shmangur situata të tilla periodikisht do të kontrolloni faqet në null.
ArrayIndexOutOfBoundsException. Çdo program nuk mund të ekzistojë pa përdorimin e vargjeve. Prandaj, rekursi të shpeshta për atë mund të gjenerojnë dhe gabim. Përjashtimi ndodh kur një zhvillues përpiqet për të hyrë në një element array që nuk është në listën e indeksit. Për shembull, vlera e kërkuar është mbi ose nën zero gjatësi. Shumë shpesh është rezultat i faktit se në rrjet fillon me një rezultat prej zero.
Gjetjet
Trajtimi përjashtime Java - një mjedis mjet i fuqishëm, i cili në masë të madhe lehtëson punën e programues dhe i lejon atij për të krijuar një të pastër dhe pa gabime të kodit. Mbi aplikimin sa të qetë dhe të qëndrueshme funksionimin varet statusin dhe reputacionin e zhvilluesi i saj.
Natyrisht, në një programe pak a shumë e thjeshtë për të gjetur situatave jonormale shumë më të lehtë. Por në komplekset e mëdha të automatizuar për disa qindra mijë linja është e mundur vetëm si rezultat i testimit afatgjatë dhe debugging.
Për Java përjashtim gabim nga të cilat lindin në disa aplikime, disa kompani u ofrojnë një shpërblim kur ata gjejnë entuziastë. vlerësuar sidomos nga ata që shkaktojnë shkelje të programeve e politikave të sigurisë.
Similar articles
Trending Now