ÒdinatèPwogram

Java: eksepsyon ak manyen yo

Nenpòt pwogram pral opere stabl sèlman si se kòd la sous debogaj, e gen pa gen okenn kondisyon ki kapab lakòz sitiyasyon enprevi. Se pwosesis la nan pwan echèk posib te pote soti sou sèn nan pwogramasyon. Pou fè sa, pwomotè a pran nan kont anbank tout rezilta yo atann epi li fè tantativ nan limit efè a nan erè a konsa ke li pa t 'kapab entèfere ak operasyon an nan pwogram nan, oswa mennen nan efondreman li yo.

Lè ou ta ka bezwen manyen eksepsyon

Nan Java, ka yon eksepsyon ki te koze pa opinyon itilizatè kòrèk, pa gen okenn bezwen pou yon resous oswa toudenkou pwogram rezo séparation. Pou itilize konfòtab kreye pa pwomotè aplikasyon an, ou dwe kontwole ensidan an nan sitiyasyon ijans. Konsomatè a pa ta dwe gen yo rete tann kite fimen yon aplikasyon, pèdi done kòm yon rezilta nan yon eksepsyon unhandled, oswa jis yon pati nan yon mesaj parèt ki deklare ke yon bagay ale mal.

Manipilasyon Java eksepsyon

Ki sa ki konsidere? Lang nan Java gen pwòp bati-an fonctionnalités manyen eksepsyon li yo. Nan kou, se yon pousantaj gwo nan erè kenbe pa yon lòt etap konpilasyon, sistèm nan pral otomatikman avize ke itilize se pa posib. Men, gen sa a kalite eksepsyon ki fèt nan ègzékusion. Pwomotè a ta dwe kapab antisipe li epi li nan konsepsyon kòd la konsa ke li pa t 'lakòz yon erè, ak okipe li nan yon fason espesyal ak tonbe nan men kontwòl nan yon lòt branch.

Nan Java, sa a se enpoze pa du a trape yon eksepsyon, se konsa pwoblèm sa yo tipik yo li te ye epi yo gen yon modèl fè egzèsis estanda.

esklizyon tipik

Egzanp lan pi senp, nan ki ou ka jwenn yon eksepsyon - divizyon sa a. Malgre senplisite li yo, an tèm, kòm yon pataj, yo ka pran zewo, ki pral rezilta nan yon erè. Bon, si li se posib nou ka prevwa Aparisyon nan sot pase a ak anpeche. Men, opsyon sa a se pa toujou disponib, se konsa pwan eksepsyon a yo ta dwe òganize dirèkteman nan evènman an nan "divize pa zewo".

Mekanis nan Java yo segman aks dèz erè pwosesis sanble sa a:

  • se pil wòch objè eksepsyon kreye, osi byen ke nenpòt lòt;
  • kou a natirèl nan pwogram nan se koupe;
  • mekanis esklizyon ap eseye jwenn yon fason altènatif kontinye kòd la;
  • Jwenn yon ekzekisyon san danje nan pwogram nan nan processeur, travay la oswa retabli, oswa ap fèt realizasyon nan eksepsyon nan yon fason espesyal.

Egzanp lan pi senp pou kreye yon erè ta ka gade tankou sa a:

si (a nil ==)

voye jete nouvo NullPointerException ();

Isit la, se varyab la yon tcheke nan inisyalizasyon, sa vle di, se pa si wi ou non referans nan yon objè nil. Si sitiyasyon sa a parèt epi yo bezwen manyen espesyal, se yon eksepsyon jete nan yon jete nouvo NullPointerException ().

Kèk detay sou mo kle

Lè fè fas ak eksepsyon se souvan nesesè yo sèvi ak Java nan mo kle, al gade nan yon aksyon patikilye. Sa a lang nan pwogram senk yo:

  • Eseye. mo kle Sa a se deja te rankontre, epi li vle di yon tranzisyon nan yon seksyon nan kòd ki ka voye jete yon eksepsyon. Blòk aparèy òtopedik limite {}.
  • Trape. Li segman aks dèz kalite a eksepsyon vle ak manch li yo kòmsadwa.
  • Finalman. mo kle sa a se si ou vle epi li se itilize fè yon moso sèten nan kòd, ki se obligatwa de tout fason, menm si pa gen okenn eksepsyon pa sot pran yo. Te ajoute dirèkteman apre blòk eseye.
  • Jete - pèmèt ou kreye Java eksepsyon soti nan nenpòt kote.
  • Lanse - yon mo kle ke yo mete nan siyati nan metòd. Sa vle di ke kòd la sa yo ka voye jete yon eksepsyon nan kalite sa Java. make sa a sèvi kòm yon siyal nan devlopè ki bezwen yo dwe fè nan tèt ou - metòd la pa kapab travay jan yo espere l '.

Pwan ak yon eseye

Release ak Java eksepsyon, natirèlman sipoze ke li pral okipe nan yon fason espesyal. Fason ki pi pratik yo fè l ', si se seksyon nan Kòd gwo ranpa koupe nan yon blòk. Ki kapab genyen ladan yon eksepsyon. Lè ou kouri sa a kòd, machin nan vityèl pral jwenn yon sitiyasyon inatandi, konprann ke gen se yon blòk kritik ak transfè kontwole yo nan estasyon an ak pwosesis la.

Se kòd la Java vlope nan yon blòk eseye espesyal, nan ki pouvwa gen yon eksepsyon. Se konsa, li mete plizyè sitiyasyon enprevi ke yo pral kenbe an plas an menm, pa raspolzayas kòd.

Kòd ki pi tipik nan apatman an pwosesis se jan sa a:

eseye {

// Isit la se kèk kòd ki ka jenere yon eksepsyon

} Trape (Tip_isklyucheniya_1 identifikator_1) {

// Isit la gen manyen eksepsyon, dapre kalite li yo ak kondisyon;

} Trape (Tip_isklyucheniya_2 identifikator_2) {

// Isit la gen manyen eksepsyon, dapre kalite li yo ak kondisyon;

}

Keyword trape rapò ke kòd, ak ekografi li pou yon eksepsyon, yo dwe trete jan sa dekri anba a, bay ke li konfòm ak kalite li yo. ka idantifyan a dwe itilize nan pwosesis blòk la Kòd kòm agiman.

finalman

Kòm li te vin klè nan chapit anvan an, trape blòk trape eksepsyon ak travay yo. Men, trè souvan sitiyasyon an rive kote yo ta dwe kouri kèk kòd, kèlkeswa si yo te kenbe erè. Pou sa a gen mo kle a finalman. Li se itilize ogmante valè yo nan kontè yo divès kalite, fèmen dosye oswa koneksyon rezo-a.

trase sa a prezante plizyè blòk trape envante metòd trape eksepsyon. Pou egzanp, kòd a genyen nan yo nan eseye a jenere yon sitiyasyon inatandi tankou Fwad la. Lè sa a, pral konsole a ap parèt ekspresyon «Yo te pran frèt!» Ak «Eske se sa ke yon bagay yo aplodi sou?». Sa se, se blòk la finalman egzekite nan nenpòt ka.

An reyalite, yon fason pou fè pou evite lakòz finalman la. Li se konekte ak fini an nan machin nan vityèl. Jwenn Ki jan yo aplike li, li se posib sou espas sa yo sou Entènèt louvri.

jete mo kle

Jete jenere yon eksepsyon. sentaks li se jan sa a:

voye jete nouvo NewException ();

Gen se kreye yon eksepsyon ki nouvo nan NewException a kalite (). Kòm se yon kalite ki ka itilize deja enkli nan klas yo estanda Java bibliyotèk ak deja defini nan pwomotè a nan pwodiksyon pwòp li yo.

Sa a konsepsyon se yon pati nan deskripsyon an nan nenpòt ki metòd, ki rele a ta dwe Lè sa a, fèt nan blòk la eseye, yo nan lòd pou kapab segman aks dèz li.

Keyword lanse

E si nan pwosesis la nan devlopman nan yon sitiyasyon kote metòd la ka voye jete yon eksepsyon, men yo pa kapab okipe byen. Pou sa ka fèt, nan siyati a metòd espesifye pawòl Bondye a lanse ak ki kalite eksepsyon posib.

mete etikèt sou Sa a se yon kalite endikatè pou devlopè kliyan ke metòd la se pa kapab okipe menm eksepsyon yo. Anplis de sa, si se kalite a erè tcheke, Lè sa a, du a pral fòs klèman mande pou li.

Eseye resous

Java vèsyon 7 Devlopè yo te gen ladan yo yon gwo inovasyon, kòm yon blòk tretman eseye ak resous.

Anpil objè yo ki te kreye nan Java, apre yo fin itilize yo ta dwe fèmen konsève resous yo. Précédemment li te pran sa a nan kont epi yo sispann ka sa yo manyèlman. Koulye a, sepandan, yo parèt AutoClosable koòdone. Li ede yo otomatikman fèmen deja itilize objè yo mete l nan yon blòk eseye. Atravè apwòch sa a li te vin pi bon yo ekri kòd nan se lizibilite li yo siyifikativman ogmante.

klas pwòp Java eksepsyon

Créateur yo nan lang nan pwogram dekri te pran an kont anpil aspè nan kalite mouvman yo konsepsyon de ijans. Sepandan, tout moun nan opsyon sa yo yo anpeche rezilta a nan evènman pa pral travay, se konsa nan Java aplike kapasite nan defini pwòp eksepsyon yo, li se ki apwopriye a bezwen yo nan kòd la an patikilye.

Fason pi senp yo kreye - nan eritye nan men apwopriye a pi plis nan kontèks la objè.

rive Gen antre al pran peyi soti nan Eksepsyon, klas la ki se sèvi ak defini eksepsyon pwòp ou yo. Nan MyException gen de konstrukteur - yon default, dezyèm lan - ak fisèl nan agiman Msg kalite.

Lè sa a, nan metòd FullConstructors salklas piblik aplike f la, ki gen siyati ki lanse MyException. mo kle Sa vle di ke f ka voye jete tankou Java MyException eksepsyon. Pli lwen, nan kò a metòd pwodwi tèks pwodiksyon enfòmasyon yo konsole nan tèt li ak MyException nan moun k'ap viv koulye aktyèl, pa voye jete.

Metòd la dezyèm se yon ti kras diferan soti nan yon nan premye ki lè ou kreye yon eksepsyon, li se te pase yon paramèt fisèl, ki pral reflete nan konsole a nan pwan. Nan prensipal la li te klè ke f () ak g () yo mete yo nan yon kont kouran eseye ak mo kle trape configuré pran MyException. Rezilta a nan pwosesis se yo montre yon mesaj erè nan konsole a:

Se konsa, li rive ajoute Java eksepsyon, nan men pwòp tèt li.

Achitèk eksepsyon

Menm jan ak tout objè ki nan Java, eksepsyon yo tou eritye epi yo gen yon estrikti yerarchize. Eleman nan rasin nan tout erè jete nan lang programmation sa a se klas java.lang.Throwable. Eritye nan men l 'de kalite - Erè ak eksepsyon.

Erè - siyal erè a kritik ak se san limit eksepsyon Java. Entèrsèpsyon ak pwosesis done sa yo nan pifò ka yo fèt nan etap nan konsepsyon epi yo pa nan bezwen nan entwodwi nan kòd la aplikasyon final la.

Klas la pi souvan itilize pou kreye ak analize eksepsyon yo se eksepsyon. Ki, nan vire, se divize an branch plizyè, ki gen ladan RuntimeException. Pa RuntimeException eksepsyon ègzekutabl, se sa ki, sa ki rive pandan pwogram nan. Tout klas sòti nan li yo se enverifyabl.

Anpil fwa gen eksepsyon

Nan Java eksepsyon, se lis la nan yo ki prezante anba a, yo te itilize pi souvan, se konsa ou ta dwe dekri chak nan yo an detay:

  • ArithmeticException. Men sa yo enkli erè ki asosye ak operasyon aritmetik. pi flagran egzanp lan - divizyon an pa zewo.
  • ArrayIndexOutOfBoundsException - yon apèl nan nimewo nan eleman etalaj ki depase total la nan longè li yo.
  • ArrayStoreException - eseye yo asiyen yon kalite eleman enkonpatib nan etalaj la.
  • ClassCastException - pou tantativ pou pote sa ki mal yon sèl kalite a nan yon lòt.
  • IllegalArgumentException - lè l sèvi avèk agiman an mal nan apèl la metòd.
  • NegativeArraySizeException - yon eksepsyon lè ou kreye yon etalaj de gwosè negatif.
  • NullPointerException - move itilizasyon referans sou nil.
  • NumberFormatException - rive lè yon konvèsyon fisèl mal yo nonb antye relatif.
  • UnsupportedOperationException - operasyon pa sipòte.

egzanp sa yo reprezante kalite mouvman yo ak eksepsyon Java san limit. Men, gade tcheke:

  • ClassNotFoundException - Gwoup pa jwenn.
  • IllegalAcccessException - mete restriksyon sou aksè nan klas la.
  • InterruptedException - entèripsyon nan koule a.
  • NoSuchFieldException - pa gen okenn jaden ki obligatwa.

rèv la vle eksepsyon yo

Pale de souvan rankontre eksepsyon ta dwe note ke entèpretasyon yo nan desen an, ka kapab santi yo mal. Next se yon lis kout eksplike nan plis detay, kote ki gen pouvwa gen yon sitiyasyon inatandi.

NullPointerException. Ka a trè premye lè gen yon eksepsyon, se fè apèl nan yon referans a yon bagay ki ki egal a nil. Li te tou fin nan zewo metòd yo klas egzanp. NullPointerException ka jete nan ka a nan jwenn yon longè nil etalaj egal-ego. Pou evite sitiyasyon sa yo pral detanzantan tcheke sit sou nil la.

ArrayIndexOutOfBoundsException. Nenpòt pwogram pa ka egziste san yo pa itilize a nan ranje. An konsekans, REKOU la souvan nan li ka jenere ak erè. Eksepsyon rive lè yon pwomotè ap eseye jwenn aksè nan yon eleman etalaj ki pa nan lis la endèks. Pou egzanp, valè a mande se pi wo a oswa pi ba pase zewo longè. Trè souvan se yon rezilta nan lefèt ke nan etalaj la kòmanse ak yon nòt nan zewo.

konklizyon

Manipilasyon Java eksepsyon - yon anviwònman zouti pwisan, ki anpil fasilite travay la nan pwogramè a ak pèmèt l 'yo kreye yon pwòp ak dépourvu nan erè kòd. Sou ki jan lis ak ki estab aplikasyon fonksyone depann sou estati a ak repitasyon nan pwomotè la.

Natirèlman, nan yon pwogram plis oswa mwens senp yo trase sitiyasyon nòmal pi fasil. Men, nan gwo konplèks otomatik pou yon kèk santèn mil liy li se posib sèlman kòm yon rezilta nan tès ki dire lontan ak debogaj.

Pou Java erè eksepsyon ki soti nan ki leve nan kèk aplikasyon, kèk konpayi ofri yon rekonpans lè yo jwenn amater. Espesyalman apresye pa moun ki lakòz yon vyolasyon nan lojisyèl an politik sekirite.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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