КомпьютерПрограмчлалын

Java: онцгой болон тэдгээрийн харьцах

Аливаа програмын эх код нь дибаг тохиолдолд л тогтвор суурьшилтай ажиллах болно, гэнэтийн нөхцөл байдлыг үүсгэж болох ямар ч нөхцөл байхгүй юм. аль болох алдаа барих үйл явц нь програмчлалын тайзан дээр хийж гүйцэтгэнэ. Үүнийг хийхийн тулд хөгжүүлэгч дансны бүх хүлээгдэж буй үр дүн болгон авч, ингэснээр энэ хөтөлбөрийн үйл ажиллагаанд оролцож чадахгүй, эсвэл түүний нуралт хүргэж алдаа нөлөөг хязгаарлах оролдлого.

Та нар бус харьцах хэрэгтэй байж болох юм бол

Java онд нэг бус буруу хэрэглэгчийн оролт замаар эх үүсвэр, эсвэл гэнэт сүлжээний салгах хөтөлбөрт ямар ч шаардлага шалтгаан байж болно. програм хөгжүүлэгч бүтээсэн тав тухтай хэрэглээнд та онцгой нөхцөл байдал үүссэнийг хянах ёстой. Хэрэглээний нь unhandled эс тооцвол, эсвэл ямар нэг зүйл буруу явж гэсэн утгатай юм шиг мессежний нь зүгээр л нэг хэсэг нь үр дүнд мэдээ алдах, өргөдөл гарахыг хүлээх хэрэгтэй байх ёстой.

Java онцгой Handling

Юу үзэх вэ? Java хэлний өөрийн барьсан нь бус харьцах ажиллагааг байна. Мэдээж хэрэг, алдаа нь том хувь нь өөр эмхэтгэлийн үе гэхэд баригдаж байна систем автоматаар гэж хэрэглээг энэ нь ямар ч болсон байж болох юм мэдэгдэнэ. Харин ажиллаж байх үед тохиолддог бусад энэ төрлийн байдаг. хөгжүүлэгч үүнийг урьдчилан Ингэснээр энэ нь алдаанд хүргэж биш үү кодыг боловсруулах чадвартай байх, мөн онцгой арга замаар үүнийг зохицуулах, өөр салбарт хяналт хүлээлгэн өгсөн байх ёстой.

Java, энэ нь онцгой тохиолдол барих хөрвүүлэгчээр оногдуулсан байна, тиймээс ердийн асуудал мэдэгдэж байгаа болон стандарт дасгал хэв маяг байдаг.

ердийн хасалтууд

хамгийн энгийн жишээ нь та алдааны мэдээлэл авч болно - Энэ бүлийг. түүний энгийн хэдий ч, нөхцөл, тусгаарлах зэрэг тэг, алдаанд хүргэнэ байж болох юм. За, өнгөрсөн бий урьдчилан таамаглах, урьдчилан сэргийлэх боломжтой юм бол. Гэхдээ энэ нь сонголт биш үргэлж байдаг, тийм болохоор үл барих "тэг хуваагдал" тохиолдолд шууд зохион байгуулагдсан байх ёстой.

боловсруулах алдааг замаас нь Java механизм нь иймэрхүү харагдах болно:

  • нуруулдан гадна объект болон бусад аль ч гэж бий бол;
  • хөтөлбөрийн байгалийн Мэдээж тасалдсан байх;
  • хасах механизм кодыг үргэлжлүүлэн өөр нэг арга нь олох гэж оролдож байна;
  • процессор, ажилд хөтөлбөрийн аюулгүй гүйцэтгэлийг хай буюу сэргээгдсэн, эсвэл тусгай замаар бусад хэрэгжилтийг тохиолдож болно.

алдаа үүсгэх иймэрхүү харагдах болно хамгийн энгийн жишээ:

(а == тэг)

Шинэ NullPointerException хаях ();

Энд хувьсагч нь эхлүүлэхэд шалгаж байна, өөрөөр хэлбэл, биш юм бол тэг обьект лавлагаа эсэх. Энэ нөхцөл байдал үүссэн болон тусгай харьцах хэрэгтэй юм бол, гадна нь шидэлт шинэ NullPointerException хамт хаягдаж байна ().

Түлхүүр үгээр талаар цөөн мэдээлэл

тохиолдлыг эс тооцвол ажиллаж байхад нь ихэвчлэн тодорхой арга хэмжээ хандахдаа гэсэн түлхүүр үг нь Java ашиглах шаардлагатай байна. Тэдний таван програмчлалын Энэ хэл нь:

  • Үзнэ үү. Энэ түлхүүр үг нь аль хэдийн уулзаж, энэ нь алдааны хаях болно кодын хэсэг рүү шилжсэн гэсэн үг юм. Блок хязгаарлагдмал хаалт {}.
  • Барих. Энэ нь хүссэн бус төрөл илэрц зохих үүнийг зохицуулах.
  • Эцэст нь. Энэ түлхүүр үг нь ямар ч бус татсан байлаа ч гэсэн, нэмэлт бөгөөд хууль, ямар ч байсан шаардлагатай нь тодорхой хэсгийг хийж гүйцэтгэхэд ашиглагдаж байна. оролдлого блокийн дараа шууд нэмэгдсэн.
  • Throw - Та хаанаас ч Java онцгой үүсгэх боломжийг олгоно.
  • Шидэж - арга нь гарын үсэг зурах байрлуулсан байдаг бөгөөд энэ нь түлхүүр үг. Энэ нь дараах код нь энэ төрлийн Java нь онцгой тохиолдол хаях болно гэсэн үг юм. Түүний хүссэнээр арга ажиллаж чадахгүй - Энэ тэмдэг санаж байх хэрэгтэй хөгжүүлэгчид нь дохио болж байна.

нь оролдлогод нь барих

Java үл гаргах, аяндаа энэ нь тусгай аргаар шийдэх болно гэж үздэг. код хэсэг нь блок унтраах хашиж байгаа бол хамгийн тохиромжтой арга зам нь үүнийг хийх. Ямар нэгэн онцгой тохиолдол байж болно. Та энэ кодыг ажиллуулах үед виртуал машин, гэнэтийн нөхцөл байдлыг олох нь маш чухал блок байдаг ба шилжүүлэг боловсруулах станц хянах гэдгийг ойлгох болно.

Java код нь тусгай блок оролдлогод бөгөөд дотор нь гадна байж болно ороосон байна. Тиймээс тэр нэг газар биш, raspolzayas код нь баригдсан байх болно хэд хэдэн гэнэтийн нөхцөл байдалд байрлуулах.

дараах байдлаар боловсруулах нэгж нь хамгийн нийтлэг код:

оролдох {

// Энд онцгой тохиолдол бий болох юм бол хэсэг код

} Барих (Tip_isklyucheniya_1 identifikator_1) {

// Энд бус харьцах байдаг, түүний төрөл, нөхцлийн дагуу;

} Барих (Tip_isklyucheniya_2 identifikator_2) {

// Энд бус харьцах байдаг, түүний төрөл, нөхцлийн дагуу;

}

Түлхүүр үг барих түүний төрөл хангасан гэж заасан, доор тайлбарласан гэж үзнэ гэж кодыг тайлан, болон бусад төлөө хайлт. танигч аргумент болгон код блок боловсруулахад ашиглаж болно.

Эцэст нь

өмнөх бүлэг нь тодорхой болсон тул барих блок онцгой барьж, тэдгээрийг боловсруулах. Гэвч маш олон удаа нөхцөл байдал үл хамааран тэд алдаа баригдаж байсан эсэх, зарим кодыг ажиллуулах нь зүйтэй хаана үүсдэг. Учир нь энэ нь эцэст нь түлхүүр үг байдаг. Энэ нь файл болон сүлжээний холболтыг хаах, янз бүрийн лангууны үнэ цэнийг нэмэгдүүлэх ашиглаж байна.

Энэ талбай нь хэд хэдэн барих блок арга онцгой барьж бүтээсэн толилуулж байна. Жишээ нь, оролдлогод агуулагдах код Хүйтэн зэрэг гэнэтийн нөхцөл байдлыг үүсгэдэг. Дараа нь консол «! Хүйтэн автсан» илэрхийлэл нь дэлгэцэн дээр гарч ирнэ Тэгээд «ямар нэг зүйл байна вэ? Хацар гэж юу». Энэ нь эцэст нь блок нь ямар ч тохиолдолд цаазаар байгаа юм.

Үнэн хэрэгтээ, арга зам эцэст нь тэнд идэвхжүүлсэн зайлсхийх. Энэ нь виртуал машин дууссаны холбогдсон байна. үүнийг хэрхэн хэрэгжүүлэх хай, энэ нь интернэтийн нээлттэй орон зай дээр болох юм.

шидэлт түлхүүр үг

Шидэлт нь онцгой тохиолдол үүсгэдэг. Түүний синтакс дараах байдалтай байна:

Шинэ NewException хаях ();

төрөл NewException нь шинэ онцгой тохиолдол байдаг үүсгэсэн байна (). төрөл ашиглаж болно аль хэдийн стандарт Java номын сангийн ангилалд орсон байдаг учраас, өмнө нь өөрийн үйлдвэрлэлийн хөгжүүлэгч тодорхойлсон.

Энэ загвар нь ямар нэгэн аргаар тайлбар, дуудлагын дараа нь замаас чадвартай байхын тулд, оролдлого блок хүрээнд гарах ёстой нэг хэсэг юм.

Түлхүүр үг шидэж

арга нь онцгой тохиолдол хаях болно, гэхдээ зөв ажиллаж чадахгүй байгаа нөхцөл байдал нь хөгжлийн үйл явцад бол яах вэ. Үүний тулд арга нь гарын үсэг зурсан гэдэг үг шидэж, аль эс тооцвол төрөл заана.

Энэ нь шошго арга нь тэдний нэг онцгой тохиолдол зохицуулах боломжтой биш гэдгийг үйлчлүүлэгч хөгжүүлэгчид нь үзүүлэлт нэг төрөл юм. Үүнээс гадна, алдаа төрөл шалгаж байгаа бол, дараа нь хөрвүүлэгч тодорхой хүчээр Хэрэв асуух болно.

нөөцийг үзээрэй

Java хувилбар 7 хөгжүүлэгчид нөөц нь эмчилгээ оролдлого блок гэх мэт томоохон шинэчлэл, орууллаа.

ашиглалтын нөөцийг хамгаалах зогсоох хэрэгтэй дараа олон обьектууд, Java-д бий болгосон байна. Өмнө нь энэ нь харгалзан энэ авч, гараараа эдгээр тохиолдлыг зогсоох ёстой байв. Гэтэл одоо тэд AutoClosable интерфэйсийг үзэгдэв. Энэ нь автоматаар оролдлого блок байрлуулж аль хэдийн хэрэглэж объектыг хаах тусалдаг. Энэ хандлагын дамжуулан өөрийн сонсогдох ихээхэн нэмэгдсэн байна кодыг бичих нь илүү тохиромжтой болж байна.

Өөрийн хичээл Java онцгой

тайлбарласан програмчлалын хэлний бүтээгчид онцгой дизайн төрлийн бүртгэл нь олон асуудлыг болгон авчээ. Гэсэн хэдий ч, бүх тохируулгуудыг бүгдийг үйл явдлын үр дүн, ажиллах боломжгүй байна Java өөрсдийн онцгой тодорхойлох чадвартай хэрэгжүүлсэн маш урьдчилан сэргийлэх, энэ нь тухайн кодын хэрэгцээнд тохиромжтой.

хамгийн энгийн арга зам бий болгох - объект онцлогт хамгийн тохиромжтой нь өвлөх.

Тэнд өөрийн онцгой тодорхойлоход ашигладаг анги Exception-аас өвлөх болсон. анхдагч, хоёр дахь - - аргумент ООТБ-ийн төрөл мөр нь MyException хоёр байгуулагч юм.

Дараа нь, олон нийтийн танхимын FullConstructors хэрэгжүүлсэн арга F, гарын үсэг агуулсан онд MyException шидэж байна. Энэ түлхүүр үг е Java MyException бусад шиг хаях болно гэсэн үг юм. Цаашилбал, арга нь биеийн шидэлтийн өөр консол нь өөрөө болон бодит үеийн MyException, текст мэдээлэл гаралтыг үйлдвэрлэсэн.

Хоёр дахь арга нь эхний барих үед консол тусгагдсан болно, та онцгой тохиолдол бий болгох үед, энэ нь мөр параметрийг өнгөрч байна гэж нэг нь бага зэрэг ялгаатай байдаг. Гол нь энэ нь F () болон г () нь оролдлого шалгах байрлуулсан ба түлхүүр үг барих MyException авахын тулд тохируулсан байгаа нь тодорхой юм. боловсруулалтын үр дүн консол нь алдааны мэдэгдэл харуулах явдал юм:

Тиймээс энэ нь түүний өөрийнх нь гараар, Java онцгой нэмж ирсэн юм.

архитектур онцгой

Java бүх обьектуудад адил, онцгой тохиолдол ч бас өвлөн авсан ба шаталсан бүтэцтэй байдаг байна. Энэ програмчлалын хэл дээр хаясан бүх алдааны эх элемент зэрэг java.lang.Throwable юм. Тэр хоёр төрлийн өвлөн авсан - алдаа болон Чөлөөлөгдөх.

Алдаа - чухал алдааг дохиолдог болон шалгаагүй Java онцгой тохиолдол юм. ихэнх тохиолдолд замаас, боловсруулах гэх мэдээлэл дизайн шатанд тохиолддог биш, эцсийн хэрэглээ кодыг нэвтрүүлэх хэрэгтэй.

бий болгох, онцгой дүн шинжилгээ хийх хамгийн түгээмэл хэрэглэгддэг анги Чөлөөлөгдөх юм. Аль нь эргээд хэд хэдэн салбар, RuntimeException зэрэг хуваагддаг. RuntimeException гэхэд үеийн онцгой, хөтөлбөрийн явцад гарч, өөрөөр хэлбэл байна. Хэрэв гаралтай бүх анги unverifiable байна.

Ихэнх тохиолдолд онцгой байдаг

Java үл онд жагсаалтыг та дэлгэрэнгүй тэдгээрийн тайлбарлах ёстой учраас ихэвчлэн ашиглаж байгаа, доор танилцуулж байна:

  • ArithmeticException. Эдгээр нь арифметик үйл ажиллагаатай холбоотой алдаа зэрэг орно. Хамгийн нүд гялбам жишээ - тэг хэлтэс.
  • ArrayIndexOutOfBoundsException - түүний урт нь нийт давж массив элемент тоо давж заалдах.
  • ArrayStoreException - массив нь нийцгүй элемент төрлийг зааж өгөх оролдлого.
  • ClassCastException - өөр нь буруу нэг төрөл авчрах гэсэн оролдлого.
  • IllegalArgumentException - арга дуудлага буруу нэмэлт өгөгдлийг ашиглан.
  • NegativeArraySizeException - нь гадна та сөрөг хэмжээ нь массивыг бий.
  • NullPointerException - ишлэл буруугаар ашиглаж тэг байна.
  • NumberFormatException - буруу мөр хувиргах бүхэл үед тохиолддог.
  • UnsupportedOperationException - үйлдлийг дэмжихгүй байна.

Эдгээр жишээ нь шалгаагүй Java үл хамаарах төрлийн илэрхийлнэ. Гэвч ийм шалгаж харна уу:

  • ClassNotFoundException - Ангилал олдсонгүй.
  • IllegalAcccessException - ангид хандах хандалтыг хязгаарлаж байна.
  • InterruptedException - урсгалын зогсолт.
  • NoSuchFieldException - ямар ч шаардлагатай талбар байдаг.

үл хамаарах тайлбар

байнга тулгарч үл хамаарах ярих дизайн тэдний тайлбар, буруу ойлгож болно гэдгийг тэмдэглэх нь зүйтэй. Дараа нь илүү дэлгэрэнгүй, гэнэтийн нөхцөл байдал бий болох нь тайлбарлаж богино жагсаалт юм.

NullPointerException. Нь гадна байдаг хамгийн эхний тохиолдолд тэг тэнцүү обьект нь лавлагаа гомдол гаргах юм. Энэ нь бас тэг ангийн төл арга үргэлжилнэ. NullPointerException тэгш урттай тэг массивыг олж авах тохиолдолд хаягдах болно. үе үе талдаа дээр газруудыг шалгах болно Ийм нөхцөл байдлаас зайлсхийхийн тулд.

ArrayIndexOutOfBoundsException. Аливаа хөтөлбөр массивын ашиглах ямар байх боломжгүй. Иймээс түүнд байнга буцаах бий болгох, алдаа болно. хөгжүүлэгч индекс жагсаалтад биш юм массив элементийг хандахыг оролдох үед бус тохиолддог. Жишээ нь, хүссэн үнэ цэнэ дээш, эсвэл тэг урттай доогуур байна. Маш ихэвчлэн массив дахь тэг оноо эхэлдэг гэдгийг нь үр дүн юм.

үр дүн нь

Java онцгой Handling - нь хүчирхэг хэрэгсэл байгаль орчин, ихээхэн программист ажлыг хөнгөвчилж, түүнийг цэвэр, код алдаа ангид бий болгох боломжийг олгодог. хэрхэн жигд, тогтвортой үйл ажиллагаа хэрэглэх хөгжүүлэгч байдал, нэр хүнд шалтгаална.

Мэдээж хэрэг, илүү эсвэл бага энгийн хөтөлбөрт илүү хялбар хэвийн бус нөхцөл байдлыг тойргоор нь. Харин хэдэн зуун мянган шугам том автомат цогцолбор нь зөвхөн урт хугацааны туршилт, дибаг хийх нь үр дүнд боломжтой юм.

нь зарим програмууд гарч Java бус алдаа, зарим компаниуд дэмжигчид олох үед шагналаа санал болгож байна. Ялангуяа аюулгүй байдлын бодлогын программ хангамж нь зөрчлийг үүсгэж тэдгээр чангарсан.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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