Amakhompyutha, Izinhlelo
Java: okuhlukile nokusingatha zabo
Noma yimuphi uhlelo ezosebenza stably kuphela uma ikhodi yomthombo olususwe, futhi azikho izimo ezingase zibangele izimo ezingalindelekile. Inqubo yokubamba ukwehluleka kungenzeka yenziwa esiteji izinhlelo. Ukuze wenze lokhu, unjiniyela uyakucabangela zonke imiphumela elindelekile abuye etame nomkhawulo umphumela iphutha ukuze ayikwazanga liphazamisane nomsebenzi we hlelo, noma kuholele nciphisa yayo.
Uma kungase kudingeke ngaphandle handling
Ngo-Java, okuhlukile kungadalwa ayilungile kokufaka komsebenzisi, asikho isidingo umthombo noma okungazelelwe uhlelo inethiwekhi Ukukhipha. Ukuze ukusetshenziswa ukhululekile okudalwe ngunjiniyela isicelo, kumele ukulawula nesenzakalo ngezimo ezisheshayo. Umthengi kufanele akudingekanga balinde ukuyeka isicelo, ukulahlekelwa idatha ngenxa okuhlukile Imenu, noma nje ingxenye umyalezo ibonakala esishoyo ukuthi kukhona okungahambanga kahle.
Nokusingatha Java okuhlukile
Yini ukuba sizicabangele? Ulimi Java inezidingo esakhelwe ngaphandle handling ukusebenza yayo. Yiqiniso, isibalo esikhulu iphutha obuswa ngomunye esiteji sokuhlanganiswa, le ndlela ngokuzenzekelayo wazise ukuthi ukusetshenziswa akuseyona kungenzeka. Kodwa kukhona lolu hlobo ngaphandle okwenzeka isikhathi sokusebenza. Umthuthukisi kumele akwazi sikulindele futhi ukuklama ikhodi ukuze akuzange kumenze nephutha, wawenza ngendlela ekhethekile futhi zadluliselwa ukulawula kwenye legatsha.
Ngo-Java, lokhu lusetshenziswa yesakhi ukubamba okuhlukile, ngakho izinkinga ejwayelekile zaziwa futhi abe ejwayelekile umsebenzi amaphethini.
okungafakwa ejwayelekile
Isibonelo elula, lapho ungathola okuhlukile - yilesi sigaba. Naphezu alula, ngokuya, njengoba ehlukanisayo, kungase kube zero, okuzoba nomphumela nephutha. Nokho, uma kungenzeka ukubikezela ukuvela esidlule futhi kuvimbele. Kodwa le ndlela akuhlali kutholakala, ngakho ekubambeni ngaphandle kumele ihlelwe ngqo uma kwenzeka "hlukanisa imali yazo ngo-zero".
I-Java indlela yokuvimbela ukucutshungulwa iphutha libukeka kanje:
- inqwaba ngaphandle into idaliwe, kanye nanoma yimuphi omunye;
- course engokwemvelo uhlelo uphazanyiswa;
- ukukhishwa indlela uzama ukuthola enye indlela ukuze uqhubeke ikhodi;
- Thola ukukhishwa okuphephile kohlelo processor, emsebenzini noma abuyiselwe, noma kuzokwenzeka ukugcwaliseka ngaphandle ngendlela ekhethekile.
Isibonelo elula yokudala nephutha lingase libukeke kanje:
uma (a null ==)
baphonse NullPointerException entsha ();
Lapha, i-variable a iyenziwa at Ukuqalisa, okungukuthi, Akukhona ukuthi ukubhekisela into null. Uma lesi simo Kuvezwe futhi kudingeka handling ekhethekile, okuhlukile is elaphonswa nokujikijela NullPointerException entsha ().
Bambalwa imininingwane mayelana angukhiye
Lapho sisebenzelana okuhlukile Ngokuvamile kuye kudingeke ukuba asebenzise i-Java elisemqoka ukubhekisa isenzo esithile. Lolu limi lwezinhlelo zabo ezinhlanu:
- Zama. Lokhu elisemqoka is kakade wahlangana, futhi kusho ushintsho ibe ingxenye ikhodi bungadida okuhlukile. Block besokunxele elinganiselwe {}.
- Catch. It engenela wayefisa ngaphandle uhlobo uyiphatha ngokufanele.
- Ekugcineni. Lokhu elisemqoka ungayikhetha futhi isetshenziswa ukwenza ucezu ezithile ikhodi, edingekayo noma kunjalo, ngisho noma azihlukile lingafunyanwa. Kungezwe ngqo emva try block.
- Phonsa - kukuvumela ukudala Java okuhlukile ukusuka noma kuphi.
- Ufaka - igama elisemqoka ukuthi ibekwa yesiginesha. Kusho ukuthi ikhodi elandelayo bungadida okuhlukile yalolu hlobo Java. Lolu phawu ukhonza njengelungu isignali konjiniyela ezidinga kukhunjulwe - indlela abakwazi ukusebenza njengoba okulindeleke kuye.
Catching nge Zama
Khipha ukuze Java okuhlukile, ngokwemvelo izitshela ukuthi izophathwa ngendlela ekhethekile. Indlela elula kunazo ukukwenza, uma kwesigaba ikhodi ibiyelwe ucime block. Yikuphi ingaqukatha okuhlukile. Uma ukusebenzisa le khodi, umshini we-virtual uzothola isimo ezingalindelekile, baqonde ukuthi kukhona block ezibucayi nokudluliswa ukulawula esiteshini nge ukucutshungulwa.
Ikhodi Java zihambisana block Zama ekhethekile, ngaphakathi okungase okuhlukile. Ngakho, wabaphathisa izimo eziningana ezingalindelekile ezazingenza bayobanjwa endaweni efanayo, hhayi raspolzayas ikhodi.
I ejwayelekile kakhulu ikhodi processing unit simiswe ngalendlela lelandzelako:
zama {
// Nali ikhodi engase ukukhiqiza okuhlukile
} Catch (Tip_isklyucheniya_1 identifikator_1) {
// Lapha kukhona okuhlukile handling, ngokuvumelana nohlobo nemibandela;
} Catch (Tip_isklyucheniya_2 identifikator_2) {
// Lapha kukhona okuhlukile handling, ngokuvumelana nohlobo nemibandela;
}
catch elingukhiye ibika ukuthi ikhodi, futhi scan wona okuhlukile, ukuphathwa ngayo njengoba kuchaziwe ngezansi, inqobo nje uma ihambisana uhlobo yayo. Isihlonzi ingasetshenziswa kucutshungulwa block ikhodi njengoba agumenti.
Ekugcineni
Njengoba kwaba sobala kusukela esahlukweni esedlule, catch amabhlogo ukubamba okuhlukile futhi ukucubungula kwabo. Kodwa kaningi kakhulu isimo kuphakama kufanele ugijime lapho ikhodi ethile, kungakhathaliseki ukuthi babanjwa amaphutha. Ngenxa yalokhu kukhona elingukhiye ekugcineni. Isetshenziselwa ukwandisa abakuzuzile zokubala ahlukahlukene, ukuvala amafayela noma noxhumo lenethiwekhi.
Lokhu ngesakhiwo presents amabhlogo catch eziningana yasungulwa izindlela ukubamba okuhlukile. Ngokwesibonelo, ikhodi eziqukethwe Zama yakha isimo ezingalindelekile ezifana Cold. Khona-ke, console azoboniswa Inkulumo «Caught abandayo!» Futhi «Ingabe okuthile ukuze ngivuselele injabulo mayelana?». Okungukuthi, abangabantwana ekugcineni block uyabulawa kunoma isiphi isimo.
Eqinisweni, indlela yokugwema nokucupha ekugcineni lapho. Ixhumeke nge kokuphothulwa ewumshini. Thola ukuthi kusetshenziswe kanjani-ke, kungenzeka ku izikhala Inthanethi evulekile.
elisemqoka Phonsa
Phonsa edonsa okuhlukile. -syntax sayo simi ngale ndlela:
baphonse NewException entsha ();
Kukhona wadala ngaphandle entsha nohlobo NewException (). Njengoba uhlobo ingasetshenziswa kakade emananini indinganiso umtapo Java amakilasi nangaphambili kuchazwe ngunjiniyela ukukhiqizwa ayo.
Lo mklamo kuyingxenye incazelo yanoma yiyiphi indlela, lapho ucingo kufanele ke, kwenzeka kuzona ngokwazo block Zama, ukuze bakwazi ukubamba ke.
elingukhiye Ufaka
Kuthiwani uma e inqubo ukuthuthukiswa isimo lapho indlela bungadida okuhlukile, kodwa abakwazi ukusingatha kahle. Kuze kube yimanje, ku yesiginesha icacisa izwi Ufaka futhi uhlobo okuhlukile kungenzeka.
Le lebula uhlobo inkomba iklayenti onjiniyela indlela akakwazi ukuphatha ngaphandle kwabo efanayo. Ngaphezu kwalokho, uma uhlobo iphutha ihloliwe, ke yesakhi kuzophoqelela ngokucacile uwucele.
Zama izinsiza
I-Java version 7 onjiniyela kuhlanganisiwe emisha ezinkulu, njengoba block ukwelashwa Zama ngezisetshenziswa.
izinto eziningi badalwe Java, ngemva kokusebenzisa kufanele shaqa yokulondoloza imvelo. Ngaphambili kwakudingeka athathe le ku-akhawunti bese ayeke Kulezi zimo ngesandla. Nokho, manje, ayebonakala esibonakalayo AutoClosable. Kuyasiza ukuvala ngokuzenzakalela izinto kakade esetshenziswa ibekwe endaweni block ngizame. Ngokusebenzisa le ndlela sekuyinto elula kakhudlwana ukubhala ikhodi efundeka kwalo kakhulu anda.
amakilasi siqu Java okuhlukile
Abadali ulimi lokwakha izinhlelo echazwe wakucabangela izici eziningi izinhlobo design eziphuthumayo. Noma kunjalo, konke kukho ukuvimbela umphumela izenzakalo ngeke isebenze, ngakho ngo-Java lwenteke ikhono ukuchaza okuhlukile yabo, kuyafaneleka izidingo ikhodi ethile.
Indlela elula ukwakha - elifeni efaneleka kakhulu nesimongcondvo into.
Kwakukhona elifeni Ukwehluka, ikilasi ukuthi isetshenziswa ukuchaza okuhlukile akho. Ngo MyException has abakhi ababili - ezenzakalelayo, kwesibili - ne i-agumenti uml uhlobo String.
Khona-ke, ekilasini zomphakathi FullConstructors lwenteke indlela f, equkethe isignesha Ufaka MyException. Lokhu elisemqoka kusho ukuthi f bungadida like Java MyException ngaphandle. Ngaphezu kwalokho, umzimba indlela akhiqizwa umbhalo ulwazi okukhiphayo console uqobo kanye langempela isizukulwane MyException, by nokujikijela.
Eyesibili indlela ukuhluka owokuqala ukuthi uma udala okuhlukile, uphasiswe ipharamitha string, okuyinto kuyobonakala console at ekubambeni. In the main kuyacaca ukuthi f () kanye g () afakwa ukuhlolwa ngizame futhi elisemqoka catch amisiwe ukuze uthwebule MyException. Waba yini umphumela wesibindi ukucubungula ukubonisa umyalezo wephutha-console:
Ngakho kwenzeka ukuze ungeze Java okuhlukile, ngesandla sakhe.
Architecture okuhlukile
Njengazo zonke izinto e-Java, okuhlukile nazo ngofuzo futhi ube isakhiwo phezulu. I element iyimpande amaphutha aphonswe ngalolu limi uhlelo ikilasi java.lang.Throwable. Njengefa kusukela kuye izinhlobo ezimbili - Iphutha kanye nokuthunyelwa.
Iphutha - kuwuphawu iphutha ezibucayi futhi angathikhiwe Java okuhlukile. Interception nokucubungula idatha efana ezimweni eziningi kwenzeka ngesikhathi isigaba design hhayi abadinga ethula ikhodi isicelo sokugcina.
Ezisetshenziswa kakhulu ekilasini ngokudala nekuhlatiya okuhlukile kuyinto Ukwehluka. Yikuphi, esikhundleni salokho, ihlukaniswe amagatsha amaningana, kuhlanganise RuntimeException. Ngu RuntimeException ukuxolelwa sokusebenza, okungukuthi, okwenzeka phakathi nesimiso. Zonke amakilasi etholakala kulo kukhona unverifiable.
Ngokuvamile kukhona okuhlukile
Ngo-Java okuhlukile, uhlu okuyinto abekwe ngezansi, asetshenziswa ngokuvamile, ngakho kufanele uchaze ngamunye kubo ngokuningiliziwe:
- ArithmeticException. Lezi zihlanganisa amaphutha elihlobene ne izibalo imisebenzi. I okusobala kakhulu isibonelo - the division ngo-zero.
- ArrayIndexOutOfBoundsException - isikhalo afanayo inombolo isici ukuthi idlula ingqikithi ubude bayo.
- ArrayStoreException - umzamo wokunika i akuhambisani isici uhlobo afanayo.
- ClassCastException - ngomzamo ukuletha okungalungile uhlobo olulodwa kwesinye.
- IllegalArgumentException - usebenzisa i-agumenti okungalungile ucingo indlela.
- NegativeArraySizeException - okuhlukile uma udala uxhaxha usayizi ezimbi.
- NullPointerException - kabi ezikhuluma null.
- NumberFormatException - kwenzeka uma okungalungile string ukuguqulwa inamba.
- UnsupportedOperationException - msebenzi awusekelwa.
Lezi zibonelo bamele izinhlobo angathikhiwe Java okuhlukile. Kodwa ngakho bheka ihlolwe:
- ClassNotFoundException - Class ayitholakalanga.
- IllegalAcccessException - Sinqanda ukufinyelela emininingwaneni isigaba.
- InterruptedException - ukuphazanyiswa ukugeleza.
- NoSuchFieldException - azikho inkundla edingekayo.
Incazelo yaleli okuhlukile
Ekhuluma okuhlukile njalo nazo kufanele kuphawulwe ukuthi incazelo yabo ekuklanyweni, kungenziwa waqonda ngokungalungile. Okulandelayo uhlu okufutshane echaza kabanzi, lapho kungahle kube isimo esingalindelekile.
NullPointerException. Icala lokuqala kakhulu uma kukhona okuhlukile, kuyinto ukuba ngilidlulisele ireferensi into ilingana null. Iphinde kudlulela izindlela zero ekilasini Ngokwesibonelo. NullPointerException kungenzeka siphoselwe uma sithola alinganayo obuphelele null afanayo. Ukuze ugweme izimo ezinjalo lizoqala hlola amasayithi null.
ArrayIndexOutOfBoundsException. Noma yimuphi uhlelo ngeke kube khona kungekho ukusetshenziswa afanayo. Ngenxa yalokho, Sokuzivikela njalo kungaba ukukhiqiza futhi iphutha. Ukwehluka kwenzeka uma umthuthukisi uzama ukufinyelela i-elementi afanayo ukuthi alikho ohlwini Inkomba. Ngokwesibonelo, inani eliceliwe singaphezu noma ngaphansi zero obuphelele. Isikhathi esining impela kuwumphumela yokuthi kumalungu afanayo iqala amaphuzu ka-zero.
okutholakele
Nokusingatha Java okuhlukile - esinamandla ithuluzi imvelo, okuyinto kusiza kakhulu umsebenzi uhlelo bese imvumela ukuba ukudala ehlanzekile elingenalo ikhodi amaphutha. On ukusebenza isicelo kanjani bushelelezi oqine kuncike isimo idumela lonjiniyela.
Yiqiniso, endaweni izinhlelo elula ucishe ukulandelela izimo normal lula kakhulu. Kodwa izakhiwo ezinkulu ngokuzenzakalela imigqa abayizinkulungwane eziyikhulu namashumi ambalwa kungenzeka kuphela ngenxa ukuhlolwa eside futhi kungasebenzi.
Ukuze Java ngaphandle yamaphutha kusuka kwamanye okuyinto kuphakama kwezinye izinhlelo zokusebenza, ezinye izinkampani zinikeza umvuzo uma bathola abathanda. Lwaziswa ngokukhethekile yilabo ezibangela ukuhlukumeza kwe-software yenqubomgomo yokuvikeleka.
Similar articles
Trending Now