KomputerProgramming

Java: iwal sarta penanganan maranéhna

Sagala program bakal beroperasi stably ngan lamun kodeu sumber ieu debugged, sarta aya henteu kaayaan anu bisa ngabalukarkeun kaayaan aral. Prosés catching mungkin gagal dilumangsungkeun dina tahap programming. Jang ngalampahkeun ieu, pamekar nyokot kana akun sagala hasil ekspektasi sarta nyoba pikeun ngawatesan pangaruh kasalahan meh teu bisa ngaganggu operasi program, atawa ngakibatkeun runtuhna na.

Lamun anjeun bisa butuh penanganan iwal

Dina Java, iwal ti bisa disababkeun ku input pamaké lepat, teu kedah pikeun sumberdaya atawa program jaringan disconnection dadakan. Pikeun pamakéan nyaman dijieun ku pamekar aplikasi, Anjeun kudu ngadalikeun lumangsungna kaayaan darurat. konsumen teu kudu kudu ngadagoan kaluar hiji aplikasi, jeung leungit data salaku hasil tina iwal unhandled, atawa ngan bagian tina pesen nembongan nyarios yén hal nu salah.

Ngatur éntitas Java

Naon mertimbangkeun? Basa Jawa boga diwangun-di fungsionalitas iwal penanganan sorangan. Tangtu, perséntase badag tina kasalahan anu bray ku tahap kompilasi sejen, sistem otomatis bakal ngabéjaan yén pamakéan dinya geus euweuh kamungkinan. Tapi aya nanaon ieu iwal anu lumangsung di runtime. pamekar kudu bisa ngantisipasi eta sarta mendesain kode nu meh teu ngakibatkeun kasalahan, sarta diatur deui dina cara husus sarta dibikeun kontrol pikeun cabang séjén.

Dina Java, ieu ditumpukeun ku compiler anu nyekel iwal, jadi masalah has anu dipikawanoh tur boga pola latihan baku.

exclusions has

Conto sederhana, nu anjeun tiasa meunang hiji ngabeda - division ieu. Sanajan kesederhanaan na, dina istilah, sakumaha divider a, bisa jadi sarua jeung nol, anu bakal ngahasilkeun hiji kasalahan. Muhun, mun kasebut nyaéta dimungkinkeun pikeun ngaduga mecenghulna kaliwat tur nyegah. Tapi pilihan ieu teu salawasna sadia, jadi catching iwal kudu diayakeun langsung dina acara "ngabagi ku enol".

Mékanisme Java mun intercept kasalahan processing Sigana mah ieu:

  • numpuk obyék iwal anu dijieun, kitu ogé sagala séjén;
  • kursus alam program téh interrupted;
  • mékanisme pangaluaran ieu nyobian pikeun manggihan hiji cara alternatif pikeun nuluykeun kode teh;
  • Teangan hiji palaksanaan aman program dina processor, karya atawa disimpen, atanapi baris lumangsung realisasi iwal dina cara husus.

Conto sederhana tina nyieun kasalahan bisa kasampak kawas kieu:

lamun (a hypothesis ==)

buang NullPointerException anyar ();

Di dieu, variabel keur dipariksa di initialization, nyaéta teu naha rujukan ka obyék hypothesis. Lamun kaayaan ieu geus arisen sarta kudu penanganan husus, iwal ti ieu dialungkeun ku lémparan NullPointerException anyar ().

Sababaraha rinci ngeunaan konci

Lamun kaayaan éntitas téh mindeng perlu nganggo Java keyword pikeun ngarujuk ka aksi tangtu. Ieu basa lima programming maranéhna:

  • Coba. keyword ieu geus patepung, sareng eta hartina transisi kana bagian kode nu bisa maledog iwal. Blok braces kawates {}.
  • Nyekel. Ieu intercepts tipe iwal nu dipikahoyong jeung nanganan eta appropriately.
  • Tungtungna. keyword ieu pilihan sarta dipaké pikeun nedunan sapotong tangtu kode, anu anu diperlukeun baé, malah lamun teu aya iwal teu bray. Ditambahkeun langsung saatos block try.
  • Buang - ngidinan Anjeun jieun éntitas Java ti mana.
  • Throws - a keyword yén ieu disimpen dina signature metoda. Ieu ngandung harti yén kodeu handap bisa maledog hiji iwal tipe ieu Java. tanda ieu boga fungsi minangka sinyal ka developer nu perlu ditanggung dina pikiran - metode teu tiasa dianggo sakumaha ekspektasi anjeunna.

Catching ku try

Release ka éntitas Java, alami nganggap yen eta bakal diatur dina cara husus. Cara nu pangmerenahna pikeun ngalakukeun hal eta, lamun bagian kode ieu fenced off di blok a. Nu bisa ngandung hiji iwal. Lamun anjeun ngajalankeun kode ieu, mesin virtual bakal nimu situasi teu kaduga, ngarti yén aya blok kritis sarta mindahkeun ngadalikeun ka stasiun jeung ngolah kana.

Kodeu Java dibungkus dina blok try husus, dina nu bisa jadi hiji iwal. Ku kituna, anjeunna ditempatkeun sababaraha kaayaan aral anu bakal bray di tempat anu sarua, teu kode raspolzayas.

Kodeu paling has kana Unit processing nyaéta saperti kieu:

coba {

// Di dieu téh sababaraha kode anu bisa ngahasilkeun iwal

} Nyekel (Tip_isklyucheniya_1 identifikator_1) {

// Di dieu aya penanganan mahiwal, nurutkeun jenis jeung kaayaan na;

} Nyekel (Tip_isklyucheniya_2 identifikator_2) {

// Di dieu aya penanganan mahiwal, nurutkeun jenis jeung kaayaan na;

}

Keyword nyekel ngalaporkeun kode anu, tur nyeken eta kanggo hiji mahiwal, bisa diolah sakumaha ditétélakeun di handap, disadiakeun yén éta luyu jeung tipe na. identifier nu bisa dipaké dina ngolah blok kode salaku alesan.

tungtungna

Salaku eta janten jelas ti bab saméméhna, nyekel blok nyekel iwal jeung ngolah éta. Tapi sering pisan kaayaan timbul dimana kedah ngajalankeun sababaraha kode, paduli naha maranéhanana bray kasalahan. Keur kitu aya nu keyword tungtungna. Hal ieu dipaké pikeun ngaronjatkeun nilai tina rupa counters, nutup file atawa sambungan jaringan.

plot Ieu presents sababaraha blok nyekel nimukeun métode nyekel pengecualian. Contona, kodeu dikandung dina try nu dibangkitkeun hiji situasi kaduga kayaning Tiis. Lajeng, konsol nu bakal dipintonkeun ekspresi «bray tiis!» Jeung «Dupi éta hal ka surak ngeunaan?». Hartina, tungtungna blok ieu dibales bisi nanaon.

Kanyataanna, cara pikeun nyingkahan triggering tungtungna dinya. Hampru nyambung jeung parantosan tina mesin virtual. Neangan cara nerapkeun éta, kasebut nyaéta dimungkinkeun dina Internet spasi muka.

keyword lémparan

Lémparan dibangkitkeun iwal. sintaksis nyaeta kieu:

buang NewException anyar ();

Aya anu dijieun iwal anyar kana tipe NewException (). Salaku tipe bisa dipaké keur geus kaasup dina kelas perpustakaan Java baku sarta saméméhna diartikeun ku pamekar produksi sorangan.

Desain Ieu bagian tina pedaran metoda naon, nu nélépon lajeng kedah lumangsung dina blok try, guna tiasa intercept eta.

keyword throws

Kumaha lamun dina prosés ngembangkeun hiji kaayaan dimana metoda bisa maledog iwal, tapi teu bisa nanganan leres. Ka tungtung ieu, dina signature metoda hususna kecap throws tur tipe tina mungkin pengecualian.

labél Ieu jenis indikator pikeun pamekar klien yén métode déskriptif henteu bisa nanganan iwal sarua maranéhanana. Sajaba ti éta, lamun tipe kasalahan anu dipariksa, teras kompiler bakal maksakeun kuduna menta eta.

Coba mun daya

The Java versi 7 pamekar geus kaasup hiji inovasi utama, salaku block perlakuan try kalawan daya.

Loba objék anu dijieun di Java, sanggeus pamakéan kudu Cicing turun ka conserve daya. Saméméhna nya kungsi nyandak ieu kana rekening jeung ngeureunkeun instansi ieu sacara manual. Ayeuna, kumaha oge, aranjeunna mucunghul panganteur AutoClosable. Eta mantuan pikeun otomatis tutup objék geus dipaké ditempatkeun dina blok try. Ngaliwatan pendekatan ieu geus jadi leuwih merenah nulis kode dina readability na ngaronjat sacara signifikan.

kelas sorangan iwal Java

The Birokrat basa programming nu digambarkeun nyandak kana akun loba aspék jenis desain emergencies. Sanajan kitu, sakabéh éta pilihan pikeun nyegah hasil tina acara iyeu moal jalan mun, jadi di Java dilaksanakeun kamampuhan pikeun nangtukeun éntitas sorangan, éta luyu jeung kaperluan kodeu nu tangtu.

Cara pangbasajanna mun nyieun - mun inherit ti paling luyu kana kontéks obyék.

Aya kajadian ka inherit ti mahiwal, kelas anu digunakeun keur ngartikeun iwal anjeun sorangan. Dina MyException boga dua konstruktor - a standar, nu kadua - jeung argumen tipe msg senar.

Saterusna, dina metoda f FullConstructors kelas umum dilaksanakeun, nu ngandung signature nu throws MyException. keyword Ieu ngandung harti yén f bisa maledog kawas Java MyException iwal. Salajengna, dina awak metoda dihasilkeun informasi téks kaluaran jeung konsol didinya jeung generasi MyException sabenerna, ku lémparan.

Metodeu kadua rada beda ti hiji munggaran nu mun anjeun nyieun hiji mahiwal, eta disalurkeun parameter string, anu bakal reflected dina konsol nu di catching. Dina utama eta jelas yén f () jeung g () disimpen dina mariksa try tur nyekel keyword ngonpigurasi candak MyException. Hasil pamrosésan nyaéta pikeun nembongkeun hiji pesen kasalahan ka konsol nu:

Ku sabab kitu eta sumping pikeun nambahkeun éntitas Java, ku leungeun sorangan.

iwal Arsitéktur

Salaku kalawan sakabeh objek dina Java, iwal anu ogé diwariskeun sarta mibanda struktur hirarki. Unsur akar sagala kasalahan dialungkeun dina basa programming ieu kelas java.lang.Throwable. Warisan ti anjeunna dua rupa - Kasalahan jeung iwal.

Kasalahan - sinyal nu kasalahan kritis tur mangrupakeun éntitas Java unchecked. Interception jeung ngolah data sapertos di hal nu ilahar lumangsung di panggung rarancang teu merlukeun ngawanohkeun dina kode aplikasi final.

kelas nu paling ilahar dipake keur nyieun sarta analisa éntitas téh iwal. Mana, kahareupna dibagi kana sababaraha cabang utama, kaasup RuntimeException. Ku RuntimeException mangrupakeun éntitas runtime, nyéta, kajadian mangsa program. Sakabéh kelas diturunkeun tina eta mangrupakeun unverifiable.

Mindeng aya pengecualian

Dina éntitas Java, daptar nu geus dibere handap, anu dipaké paling mindeng, jadi Anjeun kudu ngajelaskeun unggal sahijina di jéntré:

  • ArithmeticException. Ieu kaasup kasalahan pakait sareng operasi arithmetic. Paling glaring conto - division ku nol.
  • ArrayIndexOutOfBoundsException - banding ka angka unsur Asép Sunandar Sunarya nu ngaleuwihan total panjang na.
  • ArrayStoreException - usaha pikeun napelkeun hiji tipe unsur sauyunan ti Asép Sunandar Sunarya dina.
  • ClassCastException - usaha mawa salah salah tipe ka nu sejen.
  • IllegalArgumentException - ngagunakeun argumen salah dina metoda panggero.
  • NegativeArraySizeException - iwal mun anjeun nyieun hiji Asép Sunandar Sunarya ti ukuran négatip.
  • NullPointerException - nyalahgunakeun rujukan pikeun hypothesis.
  • NumberFormatException - lumangsung lamun konversi string salah mun integer.
  • UnsupportedOperationException - operasi teu didukung.

conto ieu ngawakilan rupa éntitas Java unchecked. Tapi kitu kasampak dipariksa:

  • ClassNotFoundException - Kelas teu kapanggih.
  • IllegalAcccessException - ngawatesan aksés ka kelas.
  • InterruptedException - kendat aliran nu.
  • NoSuchFieldException - aya euweuh lapang required.

Interprétasi sahiji éntitas

Diomongkeun di éntitas remen encountered kudu dicatet yén interpretasi maranéhanana dina rarancang, bisa katarima leres. Salajengna nyaeta daptar pondok dijelaskeun dina leuwih jéntré, dimana meureun aya hiji situasi kaduga.

NullPointerException. Kasus pisan munggaran nalika aya hiji mahiwal, nyaeta mun daya tarik pikeun rujukan ka hiji obyék nu sarua jeung nol. Ogé manjangan kana métode enol kelas conto. NullPointerException bisa jadi dialungkeun dina hal meunangkeun hiji panjangna Asép Sunandar Sunarya null sarua. Ulah aya situasi sapertos périodik bakal pariksa situs on hypothesis nu.

ArrayIndexOutOfBoundsException. Sagala program moal bisa aya tanpa pamakéan arrays. Sasuai, anu sering recourse mun eta bisa ngahasilkeun sarta kasalahan. Iwal lumangsung nalika pamekar a nyoba ngakses unsur Asép Sunandar Sunarya anu henteu dina daptar indéks. Contona, nilai dipénta nyaeta luhur atawa handap enol panjangna. Mindeng pisan aya hasil tina kanyataan yén dina Asép Sunandar Sunarya dina dimimitian kalawan skor nol.

timuan

Ngatur éntitas Java - lingkungan alat kuat, nu greatly facilitates karya programmer jeung ngamungkinkeun anjeunna pikeun nyieun beresih jeung devoid kasalahan kode. Dina aplikasi fungsi kumaha lemes jeung stabil gumantung kana status na reputasi of pamekar nu.

Tangtu, dina leuwih atawa kurang program basajan pikeun ngabasmi kaayaan abnormal loba gampang. Tapi kompléx otomatis badag pikeun sababaraha ratus rébu garis kasebut nyaéta dimungkinkeun wungkul salaku hasil tina nguji jangka panjang sarta debugging.

Pikeun kasalahan iwal Java ti mana timbul sababaraha aplikasi, sawatara pausahaan nawiskeun reward a nalika maranéhna manggihan peminat. Utamana ngaapresiasi ku maranéhanana anu ngakibatkeun palanggaran éta software kawijakan kaamanan.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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