KompyutaProgramu

Java: isipokuwa na utunzaji wao

mpango wowote itafanya kazi stably tu kama kanuni chanzo ni debugged, na kuna hakuna hali ambayo inaweza kusababisha hali unforeseen. mchakato wa kuambukizwa kushindwa iwezekanavyo unafanywa juu ya hatua ya programu. Ili kufanya hivyo, developer inachukua katika akaunti ya kila matokeo inatarajiwa na jitihada za kupunguza athari za makosa na hivyo inaweza kuingilia kati na kazi ya programu, au kusababisha kuanguka yake.

Wakati unaweza kuhitaji utunzaji ubaguzi

Katika Java, ubaguzi husababishwa na pembejeo sahihi mtumiaji, hakuna haja ya rasilimali au ghafla mtandao kukatiwa mpango. Kwa ajili ya matumizi ya starehe iliyoundwa na maombi developer, lazima kudhibiti tukio la hali za dharura. matumizi lazima kusubiri kwa kujiondoa maombi, kupoteza data kutokana na ubaguzi unhandled, au sehemu tu ya ujumbe inaonekana kusema kwamba kuna hitilafu.

Utunzaji isipokuwa Java

Nini cha kuzingatia? lugha Java ina wenyewe kujengwa katika utunzaji ubaguzi utendaji. Bila shaka, asilimia kubwa ya makosa ni hawakupata na hatua nyingine mkusanyiko, mfumo moja kwa moja meddela kuwa matumizi yake ni tena inawezekana. Lakini kuna aina hii ya ubaguzi ambayo hutokea katika Runtime. developer wataweza wanatarajia na kubuni kanuni ili haikuwa kusababisha makosa, na kubebwa kwa njia ya pekee na kukabidhiwa juu ya udhibiti wa tawi jingine.

Katika Java, hii iliyowekwa na compiler kwa kupata ubaguzi, hivyo matatizo ya kawaida hujulikana na kuwa kiwango mazoezi chati.

Kuondolewa kawaida

mfano rahisi, ambapo unaweza kupata ubaguzi - mgawanyo huu. Licha ya unyenyekevu wake, kwa maneno, kama msuluhishi, inaweza kuwa sifuri, ambayo itasababisha kosa. Naam, kama inawezekana kutabiri kuibuka siku za nyuma na kuzuia. Lakini hatua hii si mara zote zilizopo, hivyo kuambukizwa ubaguzi lazima kuwa na utaratibu moja kwa moja katika tukio la "mgao kwa sifuri".

Java utaratibu kukatiza makosa usindikaji inaonekana kama hii:

  • chungu isipokuwa kitu ni kuundwa, pamoja na nyingine yoyote;
  • kozi ya asili ya mpango ni kuingiliwa;
  • kutengwa utaratibu anajaribu kutafuta njia mbadala ya kuendelea code,
  • Kupata utekelezaji salama ya programu katika processor, kazi au kurejeshwa, au kutokea utambuzi wa ubaguzi kwa namna maalum.

mfano rahisi ya kujenga na makosa ili kuangalia kama hii:

ikiwa (== null)

kutupa NullPointerException mpya ();

Hapa, variable a ni checked katika initialization, yaani, siyo kama kumbukumbu ya kitu null. Kama hali hii ametokea na haja ya utunzaji maalum, isipokuwa ni kutupwa na kutupa NullPointerException mpya ().

maelezo machache kuhusu maneno

Wakati wa kushughulika na tofauti ni mara nyingi muhimu kutumia keyword Java kwa kutaja hatua fulani. Lugha hii ya programu zao tano:

  • Jaribu. keyword hii tayari alikutana, na maana yake ya mpito katika sehemu ya kificho kwamba unaweza kutupa ubaguzi. Block mdogo braces {}.
  • Catch. Ni intercepts aina ya taka ubaguzi na kushughulikia ipasavyo.
  • Hatimaye. keyword hii ni ya hiari na ni kutumika kufanya kipande fulani ya kanuni, ambayo inahitajika anyway, hata kama hakuna ubaguzi si hawakupata. Aliongeza moja kwa moja baada ya kuzuia na kujaribu.
  • Tupa - inakuwezesha kuunda Java isipokuwa kutoka mahali popote.
  • Throws - keyword kwamba ni kuwekwa katika njia sahihi. Ina maana kwamba kanuni zifuatazo inaweza kutupa ubaguzi wa aina hii Java. alama hii hutumika kama ishara watengenezaji ambayo yanahitaji akilini - njia unaweza kufanya kazi kama inatarajiwa yake.

Kuambukizwa na kujaribu

Achilia ili Java tofauti, kwa kawaida akubali kwamba itakuwa kubebwa kwa njia maalum. njia rahisi zaidi ya kufanya hivyo, kama sehemu posta ni maboma mbali katika kuzuia. Ambayo inaweza kuwa na ubaguzi. Wakati kukimbia msimbo huu, mashine virtual utapata hali isiyotarajiwa, kuelewa kuwa kuna block muhimu na uhamisho kudhibiti na kituo cha pamoja usindikaji.

Java code umefungwa katika maalum ya kuzuia kujaribu, ndani ya ambayo inaweza kuwa ubaguzi. Hivyo, yeye alikuwa hali kadhaa kuonekana kuwa itakuwa hawakupata katika sehemu moja, si raspolzayas code.

kanuni ya kawaida kwa kitengo usindikaji ni kama ifuatavyo:

jaribu {

// Hapa ni baadhi code ambayo inaweza kuzalisha ubaguzi

} Catch (Tip_isklyucheniya_1 identifikator_1) {

// Hapa kuna tofauti utunzaji, kulingana na aina yake na hali;

} Catch (Tip_isklyucheniya_2 identifikator_2) {

// Hapa kuna tofauti utunzaji, kulingana na aina yake na hali;

}

Keyword kukamata taarifa kuwa kanuni, na kuichanganua kwa ubaguzi, kutibiwa kama ilivyoelezwa hapa chini, mradi yanapatana na aina yake. kitambulisho inaweza kutumika katika usindikaji code block kama hoja.

hatimaye

Kama ikawa wazi katika sura iliyotangulia, kukamata vitalu kupata tofauti na mchakato wao. Lakini mara nyingi sana hali inatokana ambapo lazima kukimbia baadhi ya kanuni, bila kujali kama walikuwa hawakupata makosa. Kwa hili kuna keyword hatimaye. Ni kutumika kwa kuongeza thamani za counters mbalimbali, kufunga faili au uhusiano wa mtandao.

njama hii inaleta kadhaa kukamata vitalu zuliwa mbinu kupata upekee. Kwa mfano, kanuni zilizomo katika kujaribu inazalisha hali isiyotarajiwa kama vile baridi. Kisha, console itaonyeshwa kujieleza «Caught baridi!» Na «Je, hiyo ni kitu cha furaha kuhusu?». Hiyo ni, hatimaye kuzuia ni kunyongwa katika hali yoyote.

Kwa kweli, njia ya kuepuka kuchochea hatimaye huko. Ni kushikamana na kukamilika kwa mashine virtual. Kupata jinsi ya kutekeleza hayo, inawezekana kwenye mtandao maeneo ya wazi.

Tupa keyword

Tupa inazalisha ubaguzi. syntax yake ni kama ifuatavyo:

kutupa NewException mpya ();

Kuna kuundwa ubaguzi mpya ya aina NewException (). Kama aina inaweza kutumika tayari ni pamoja na katika kiwango madarasa Java maktaba na hapo awali inavyoelezwa na developer ya uzalishaji wake mwenyewe.

Mpango huu ni sehemu ya maelezo ya njia yoyote, ambayo wito hapo hutokea ndani ya kuzuia kujaribu, ili kuwa na uwezo wa kuingilia jambo hilo.

Keyword kumtupia

Je, kama katika mchakato wa maendeleo ya hali ambapo mbinu inaweza kutupa ubaguzi, lakini hawawezi kushughulikia vizuri. Hadi mwisho huu, katika njia sahihi bayana neno kumtupia na aina ya tofauti iwezekanavyo.

Lebo hii ni aina ya kiashiria watengenezaji mteja ambayo njia haina uwezo wa kushughulikia ubaguzi wao huo. Aidha, kama aina ya kosa imechaguliwa, basi compiler mapenzi nguvu waziwazi kuuliza kwa ajili yake.

Jaribu rasilimali

Java toleo 7 watengenezaji kuwa ni pamoja na uvumbuzi kubwa, kwa vile kuzibwa matibabu ya kujaribu na rasilimali.

vitu nyingi hutengenezwa katika Java, baada ya kutumia lazima kufungwa kuhifadhi rasilimali. Hapo awali alikuwa na kuchukua katika akaunti na kuacha matukio haya kwa mkono. Sasa, hata hivyo, alionekana AutoClosable interface. Inasaidia moja kwa moja karibu tayari kutumika vitu kuwekwa katika kuzuia na kujaribu. Kwa njia ya mbinu hii imekuwa rahisi zaidi kuandika code katika usomaji wake kwa kiasi kikubwa kuongezeka.

madarasa Own Java isipokuwa

watengenezaji wa maelezo ya lugha ya programu alichukua katika akaunti ya masuala mengi ya aina mpango wa dharura. Hata hivyo, chaguzi kuzuia matokeo ya matukio haiwezi kufanya kazi, hivyo katika Java kutekelezwa uwezo wa kufafanua tofauti zao wenyewe, ni muafaka kwa mahitaji ya kanuni husika.

njia rahisi ya kujenga - kwa kurithi kutoka sahihi zaidi kwa kitu muktadha.

Kuna kilichotokea kwa kurithi kutoka Ubaguzi, tabaka ambayo hutumiwa kufafanua tofauti yako mwenyewe. Katika MyException ina constructors mbili - default, pili - kwa hoja msg aina String.

Kisha, katika darasa umma FullConstructors kutekelezwa njia f, ambayo ina saini kumtupia MyException. keyword Hii ina maana kwamba f unaweza kutupa kama Java MyException ubaguzi. Zaidi ya hayo, katika njia ya mwili zinazozalishwa habari Nakala pato console yenyewe na halisi kizazi MyException, kwa kutupa.

Njia ya pili ni tofauti kidogo kutoka kwa mmoja wa kwanza wakati kujenga ubaguzi, ni kupita kamba parameter, ambayo itakuwa yalijitokeza katika console katika kuambukizwa. Katika kuu ni wazi kwamba f () na g () huwekwa katika kuangalia kujaribu na neno muhimu kukamata kimeundwa kukamata MyException. Kutokana na usindikaji ni kuonyesha ujumbe wa kosa console:

Hivyo basi ilikuwa kuongeza Java tofauti, kwa mkono wake mwenyewe.

isipokuwa Architecture

Kama ilivyo kwa vitu vyote katika Java, isipokuwa pia kurithi na kuwa muundo wa kihierarkia. mzizi kipengele cha makosa yote kutupwa katika lugha hii ya programu ni ya darasa java.lang.Throwable. Kurithi kutoka kwake aina mbili - Kosa na Ubaguzi.

Hitilafu - ishara makosa muhimu na ni unchecked Java upekee. Kutekwa na usindikaji data kama mara nyingi hutokea katika hatua ya kubuni na si katika haja ya kuanzisha katika maombi code ya mwisho.

inayotumika darasani vya kujenga na kuchambua tofauti ni Ubaguzi. Ambayo, kwa upande, imegawanywa katika matawi kadhaa, ikiwa ni pamoja na RuntimeException. By RuntimeException ni Runtime tofauti, ambayo ni, kutokea wakati mpango. madaraja yote inayotokana na ni watu unverifiable.

Mara nyingi kuna buraa

Katika Java tofauti, orodha ya ambayo ni hapa chini, hutumika mara nyingi, hivyo unapaswa kueleza kila mmoja wao kwa kina:

  • ArithmeticException. Hizi ni pamoja na makosa yanayohusiana na shughuli hesabu. wa dhahiri mfano - mgawanyo na sifuri.
  • ArrayIndexOutOfBoundsException - rufaa safu kipengele idadi hiyo inazidi jumla ya urefu wake.
  • ArrayStoreException - jaribio la kuwapa kinyume kipengele aina ya mkusanyiko.
  • ClassCastException - jaribio la kuleta makosa moja aina ya mwingine.
  • IllegalArgumentException - kwa kutumia hoja vibaya katika njia simu.
  • NegativeArraySizeException - isipokuwa wakati unapofungua safu ya ukubwa hasi.
  • NullPointerException - matumizi mabaya ya kumbukumbu kwa null.
  • NumberFormatException - hutokea wakati sahihi kamba kubadilika kwa integer.
  • UnsupportedOperationException - operesheni haiwezi kutumiwa.

Mifano hii kuwakilisha aina ya tofauti unchecked Java. Lakini hivyo kuangalia kuchunguzwa:

  • ClassNotFoundException - Class haikupatikana.
  • IllegalAcccessException - kudhibiti upatikanaji wa darasa.
  • InterruptedException - usumbufu wa mtiririko.
  • NoSuchFieldException - hakuna sehemu inayohitajika.

tafsiri ya isipokuwa

Akizungumza isipokuwa mara nyingi walikutana Ikumbukwe kwamba tafsiri yao katika kubuni, inaweza kuwa alijua kimakosa. Next ni orodha fupi akielezea kwa undani zaidi, ambapo kuna kuwa na hali isiyotarajiwa.

NullPointerException. kesi ya kwanza sana wakati kuna tofauti, ni kukata rufaa kwa kumbukumbu ya kitu kwamba ni sawa kwa null. Pia hadi sifuri mbinu darasa mfano. NullPointerException inaweza kutupwa katika kesi ya kupata sawa urefu null mkusanyiko. Ili kuepuka hali kama hizo itakuwa mara kwa mara kuangalia maeneo ya juu ya null.

ArrayIndexOutOfBoundsException. mpango wowote haiwezi kuwepo bila ya matumizi ya arrays. Kwa hiyo, kuchukua hatua za mara kwa mara kwa hiyo inaweza kuzalisha na makosa. Ubaguzi hutokea wakati developer anajaribu kupata safu ya vipengele ambayo si katika orodha index. Kwa mfano, aliomba thamani ya kitu juu au chini ya sifuri urefu. mara nyingi sana ni matokeo ya ukweli kwamba katika safu huanza na alama ya sifuri.

matokeo ya utafiti

Utunzaji Java isipokuwa - nguvu chombo mazingira, ambayo kwa kiasi kikubwa kuwezesha kazi ya programu na inaruhusu yake ya kujenga safi na bila ya makosa code. Juu ya jinsi laini na imara kazi maombi inategemea hali na sifa ya developer.

Bila shaka, katika zaidi au chini ya mipango rahisi kufuatilia hali isiyo ya kawaida rahisi zaidi. Lakini katika complexes kubwa kiotomatiki kwa wachache laki mistari inawezekana tu kwa sababu ya kupima muda mrefu na utatuzi.

Kwa ubaguzi na makosa Java ambayo kutokea katika baadhi ya programu, baadhi ya makampuni ya kutoa zawadi wakati wao kupata mashabiki. Hasa kukubaliwa na wale wenye kusababisha ukiukaji wa programu sera ya usalama.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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