ຄອມພິວເຕີດໍາເນີນໂຄງການ

Java: ການຍົກເວັ້ນແລະການຈັດການຂອງເຂົາເຈົ້າ

ໂຄງການຈະປະຕິບັດງານບໍ່ຢຸດຢັ້ງພຽງແຕ່ຖ້າຫາກວ່າລະຫັດທີ່ມາຖືກ debugged, ແລະມີເງື່ອນໄຂທີ່ສາມາດເຮັດໃຫ້ສະຖານະການທີ່ບໍ່ຄາດຝັນທີ່ບໍ່ມີ. ຂະບວນການຂອງການຈັບຄວາມລົ້ມເຫລວທີ່ເປັນໄປໄດ້ແມ່ນປະຕິບັດກ່ຽວກັບຂັ້ນຕອນການດໍາເນີນໂຄງການ. ເພື່ອເຮັດສິ່ງນີ້, ການພັດທະນາຈະໄດ້ຮັບເຂົ້າໄປໃນບັນຊີທັງຫມົດຜົນໄດ້ຮັບຂອງການຄາດຄະເນແລະພະຍາຍາມຈໍາກັດຜົນກະທົບຂອງຄວາມຜິດພາດໄດ້ດັ່ງນັ້ນມັນບໍ່ສາມາດແຊກແຊງການເຮັດວຽກຂອງໂຄງການດັ່ງກ່າວ, ຫຼືນໍາໄປສູ່ການ collapse ຂອງຕົນ.

ໃນເວລາທີ່ທ່ານອາດຈະຈໍາເປັນຕ້ອງໄດ້ຮັກສາຫຼັງຍົກເວັ້ນ

ໃນ Java, ມີຂໍ້ຍົກເວັ້ນອາດມາຈາກວັດສະດຸປ້ອນຜູ້ໃຊ້ທີ່ບໍ່ຖືກຕ້ອງ, ຕ້ອງການສໍາລັບຊັບພະຍາກອນຫຼືໂຄງການເຄືອຂ່າຍບໍ່ຕິດຢ່າງກະທັນຫັນບໍ່. ສໍາລັບການນໍາໃຊ້ສະດວກສະບາຍທີ່ສ້າງຂຶ້ນໂດຍນັກພັດທະນາຄໍາຮ້ອງສະຫມັກ, ທ່ານຈະຕ້ອງຄວບຄຸມການປະກົດຕົວຂອງສະຖານະການສຸກເສີນໄດ້. ຜູ້ບໍລິໂພກບໍ່ຄວນຈໍາເປັນຕ້ອງລໍຖ້າທີ່ຈະເລີກຄໍາຮ້ອງສະຫມັກ, ການສູນເສຍຂໍ້ມູນທີ່ເປັນຜົນມາຈາກການຍົກເວັ້ນ unhandled, ຫຼືພຽງແຕ່ສ່ວນຫນຶ່ງຂອງຂໍ້ຄວາມຈະປາກົດລະບຸວ່າບາງສິ່ງບາງຢ່າງເອງເຮັດຜິດພາດ.

ການຈັດການຍົກເວັ້ນ Java

ສິ່ງທີ່ຕ້ອງພິຈາລະນາ? ພາສາ Java ມີການທໍາງານການຈັດການຂໍ້ຍົກເວັ້ນຂອງຕົນເອງກໍ່ສ້າງໃນ. ແນ່ນອນວ່າ, ອັດຕາສ່ວນຂະຫນາດໃຫຍ່ຂອງຄວາມຜິດພາດໄດ້ຖືກຈັບໄດ້ໂດຍຂັ້ນຕອນຂອງການລວບລວມຄົນອື່ນ, ລະບົບຈະແຈ້ງການນໍາໃຊ້ວ່າມັນແມ່ນບໍ່ມີຕໍ່ໄປອີກແລ້ວທີ່ເປັນໄປໄດ້ອັດຕະໂນມັດ. ແຕ່ບໍ່ມີປະເພດຂອງຂໍ້ຍົກເວັ້ນນີ້ທີ່ເກີດຂຶ້ນຢູ່ໃນອຸ. ການພັດທະນາຄວນຈະສາມາດຄາດຫວັງມັນແລະການອອກແບບລະຫັດດັ່ງນັ້ນມັນບໍ່ໄດ້ເຮັດໃຫ້ຄວາມຜິດພາດ, ແລະດໍາເນີນການໃນວິທີການພິເສດແລະມອບໄວ້ໃນມືຄວບຄຸມການສາຂາອື່ນ.

ໃນ Java, ນີ້ຈະເອີ້ນເກັບລວບລວມໃນການຈັບເປັນຂໍ້ຍົກເວັ້ນ, ສະນັ້ນບັນຫາປົກກະຕິເປັນທີ່ຮູ້ຈັກແລະມີຮູບແບບອອກກໍາລັງກາຍມາດຕະຖານ.

ຂໍ້ຍົກເວັ້ນຕ່າງໆເປັນປົກກະຕິ

ການຍົກຕົວຢ່າງ simplest, ທີ່ທ່ານສາມາດໄດ້ຮັບການຍົກເວັ້ນ - ພະແນກນີ້. ເຖິງວ່າຈະມີລະນາຂອງຕົນ, ໃນເງື່ອນໄຂເປັນ divider ເປັນ, ອາດຈະສູນຊຶ່ງຈະສົ່ງຜົນໃຫ້ຄວາມຜິດພາດ. ດີ, ຖ້າຫາກວ່າມັນເປັນໄປໄດ້ທີ່ຈະຄາດຄະເນການສຸກເສີນຂອງໄລຍະຜ່ານມາແລະປ້ອງກັນບໍ່ໃຫ້. ແຕ່ຕົວເລືອກນີ້ແມ່ນບໍ່ສະເຫມີໄປສາມາດໃຊ້ໄດ້, ດັ່ງນັ້ນຫມາຍເຖິງການຈັບຍົກເວັ້ນຄວນໄດ້ຮັບການຈັດໂດຍກົງໃນກໍລະນີຂອງ "ຫານດ້ວຍສູນ".

ກົນໄກ Java ສະກັດກັ້ນຄວາມຜິດພາດການປະມວນຜົນຄ້າຍຄືນີ້:

  • ວັດຖຸຂໍ້ຍົກເວັ້ນ heap ຖືກສ້າງຕັ້ງຂື້ນ, ເຊັ່ນດຽວກັນກັບການອື່ນໆ;
  • ໄດ້ແນ່ນອນທໍາມະຊາດຂອງໂຄງການໄດ້ຖືກລົບກວນ;
  • ກົນໄກການຍົກເວັ້ນແມ່ນຄວາມພະຍາຍາມເພື່ອຊອກຫາວິທີທາງເລືອກທີ່ຈະດໍາເນີນການຕໍ່ຂໍ້ກໍານົດ;
  • ຊອກຫາການປະຕິບັດຄວາມປອດໄພຂອງໂຄງການໃນໂຮງງານຜະລິດ, ການເຮັດວຽກຫຼືການຟື້ນຟູ, ຫຼືຈະເກີດຂຶ້ນສໍານຶກຂອງຂໍ້ຍົກເວັ້ນໃນວິທີການພິເສດ.

ການຍົກຕົວຢ່າງ simplest ຂອງການສ້າງຄວາມຜິດພາດອາດຈະເບິ່ງຄືແນວນີ້:

ຖ້າຫາກວ່າ (ກ null ==)

ຖິ້ມ NullPointerException ໃຫມ່ ();

ທີ່ນີ້, ຕົວແປໄດ້ຖືກກວດກາຢູ່ໃນການເລີ່ມຕົ້ນ, ie, ບໍ່ແມ່ນວ່າກະສານອ້າງອີງເພື່ອເປັນວັດຖຸ null. ຖ້າຫາກວ່າສະຖານະການນີ້ໄດ້ເກີດຂຶ້ນແລະຈໍາເປັນຕ້ອງຮັກສາຫຼັງພິເສດ, ມີຂໍ້ຍົກເວັ້ນແມ່ນຖີ້ມໂດຍຖິ້ມ NullPointerException ໃຫມ່ ().

ລາຍລະອຽດບໍ່ຫຼາຍປານໃດກ່ຽວກັບຄໍາ

ໃນເວລາທີ່ຈັດການກັບຂໍ້ຍົກເວັ້ນແມ່ນມັກຈະມີຄວາມຈໍາເປັນທີ່ຈະນໍາໃຊ້ Java ຄໍາທີ່ໃຊ້ເພື່ອຫມາຍເຖິງການປະຕິບັດໂດຍສະເພາະ. ພາສານີ້ດໍາເນີນໂຄງການຫ້າຂອງເຂົາເຈົ້າ:

  • ພະຍາຍາມ. ຄໍານີ້ແມ່ນ ບັນລຸໄດ້ແລ້ວ, ແລະມັນຫມາຍຄວາມວ່າການປ່ຽນແປງເປັນສ່ວນຂອງລະຫັດທີ່ສາມາດຖິ້ມຂໍ້ຍົກເວັ້ນໄດ້. ບລັອກເຊືອກຜູກຈໍາກັດ {}.
  • ຈັບ. ມັນຕັດປະເພດຍົກເວັ້ນທີ່ຕ້ອງການແລະຈັດການຢ່າງເຫມາະສົມ.
  • ສຸດທ້າຍ. ຄໍານີ້ແມ່ນທາງເລືອກແລະໄດ້ຖືກນໍາໃຊ້ເພື່ອປະຕິບັດຊິ້ນຫນຶ່ງຂອງລະຫັດ, ເຊິ່ງຈໍາເປັນຕ້ອງມີແລ້ວ, ເຖິງແມ່ນວ່າຖ້າຫາກວ່າບໍ່ມີຂໍ້ຍົກເວັ້ນບໍ່ໄດ້ຖືກຈັບ. ເພີ່ມໂດຍກົງພາຍຫຼັງທີ່ພະຍາຍາມຕັນ.
  • ຖິ້ມ - ສາມາດເຮັດໃຫ້ທ່ານສ້າງຂໍ້ຍົກເວັ້ນ Java ຈາກທຸກບ່ອນ.
  • Throws - ຄໍາທີ່ຖືກເກັບໄວ້ໃນລາຍເຊັນວິທີການໄດ້. ມັນຫມາຍຄວາມວ່າລະຫັດດັ່ງຕໍ່ໄປນີ້ສາມາດຖິ້ມຂໍ້ຍົກເວັ້ນປະເພດນີ້ Java. ເຄື່ອງຫມາຍນີ້ເປັນສັນຍານທີ່ຈະພັດທະນາທີ່ຈໍາເປັນຕ້ອງໄດ້ຮັບການ borne ໃນຈິດໃຈທີ່ເປັນ - ວິທີການທີ່ບໍ່ສາມາດເຮັດວຽກຕາມທີ່ຄາດໄວ້ຂອງພຣະອົງ.

ຫມາຍເຖິງການຈັບທີ່ມີພະຍາຍາມ

ປ່ອຍເພື່ອຍົກເວັ້ນ Java, ທໍາມະຊາດອະນຸມານວ່າມັນຈະໄດ້ຮັບການວັງໃນວິທີການພິເສດ. ວິທີທີ່ສະດວກທີ່ສຸດທີ່ຈະເຮັດມັນ, ຖ້າຫາກວ່າພາກສ່ວນລະຫັດແມ່ນ fenced ໃນຕັນເປັນ. ຊຶ່ງອາດປະກອບດ້ວຍຂໍ້ຍົກເວັ້ນ. ໃນເວລາທີ່ທ່ານດໍາເນີນການລະຫັດດັ່ງກ່າວນີ້, ໄດ້ເຄື່ອງ virtual ຈະຊອກຫາສະຖານະການທີ່ບໍ່ຄາດຄິດ, ເຂົ້າໃຈດີວ່າມີການ block ທີ່ສໍາຄັນແລະການໂອນການຄວບຄຸມສະຖານີທີ່ມີການປຸງແຕ່ງ.

ລະຫັດ Java ຖືກຫໍ່ຢູ່ໃນພະຍາຍາມ block ພິເສດ, ພາຍໃນເຊິ່ງອາດຈະມີຂໍ້ຍົກເວັ້ນ. ດັ່ງນັ້ນ, ເຂົາໄວ້ສະຖານະການທີ່ບໍ່ຄາດຄິດຈໍານວນຫນຶ່ງທີ່ຈະຖືກຈັບຢູ່ໃນສະຖານທີ່ດຽວກັນ, ບໍ່ code raspolzayas.

ລະຫັດປົກກະຕິທີ່ສຸດທີ່ຈະຫນ່ວຍປະມວນຜົນມີດັ່ງນີ້:

ພະຍາຍາມ {

// ນີ້ລະຫັດບາງທີ່ອາດຈະສ້າງເປັນຂໍ້ຍົກເວັ້ນແມ່ນ

} ຈັບ (Tip_isklyucheniya_1 identifikator_1) {

// ນີ້ມີການຈັດການຂໍ້ຍົກເວັ້ນ, ອີງຕາມປະເພດແລະເງື່ອນໄຂຂອງຕົນ;

} ຈັບ (Tip_isklyucheniya_2 identifikator_2) {

// ນີ້ມີການຈັດການຂໍ້ຍົກເວັ້ນ, ອີງຕາມປະເພດແລະເງື່ອນໄຂຂອງຕົນ;

}

ຈັບຄໍາລາຍງານລະຫັດທີ່, ແລະສະແກນມັນສໍາລັບຂໍ້ຍົກເວັ້ນ, ໃຫ້ຖືວ່າເປັນອະທິບາຍຂ້າງລຸ່ມນີ້, ສະຫນອງໃຫ້ວ່າມັນປະຕິບັດຕາມປະເພດຂອງຕົນ. ຕົວລະບຸສາມາດຖືກນໍາໃຊ້ໃນການປະມວນຜົນຕັນລະຫັດເປັນການໂຕ້ຖຽງ.

ສຸດທ້າຍ

ມັນກໍກາຍເປັນທີ່ຈະແຈ້ງຈາກບົດທີ່ຜ່ານມາ, ຈັບບລັອກຈັບຍົກເວັ້ນແລະປະມວນຜົນໃຫ້ເຂົາເຈົ້າ. ແຕ່ຫຼາຍມັກຈະສະຖານະການທີ່ເກີດຂື້ນທີ່ຄວນດໍາເນີນການລະຫັດບາງ, ໂດຍບໍ່ຄໍານຶງເຖິງວ່າພວກເຂົາໄດ້ຖືກຈັບຄວາມຜິດພາດ. ສໍາລັບນີ້ໄດ້ເປັນຄໍາສໍາຄັນທີ່ສຸດ. ມັນຖືກນໍາໃຊ້ເພື່ອເພີ່ມທະວີຄຸນຄ່າຂອງວຽກງານຕ້ານການຕ່າງໆໄດ້, ປິດໄຟຫຼືການເຊື່ອມຕໍ່ເຄືອຂ່າຍ.

ດິນຕອນນີ້ສະເຫນີຈໍານວນຫນຶ່ງຈັບບລັອກຄິດຄົ້ນວິທີການຈັບຍົກເວັ້ນ. ສໍາລັບຕົວຢ່າງ, ລະຫັດທີ່ມີຢູ່ໃນພະຍາຍາມສ້າງສະຖານະການທີ່ບໍ່ຄາດຄິດເຊັ່ນ: ເຢັນ. ຫຼັງຈາກນັ້ນ, console ໄດ້ຈະໄດ້ຮັບການສະແດງການສະແດງອອກ«ຈັບເຢັນ! »ແລະ«ແມ່ນວ່າບາງສິ່ງບາງຢ່າງໃຫ້ກໍາລັງໃຈກ່ຽວກັບການ? ». ຫມາຍຄວາມວ່າ, ທ່ອນໄມ້ທີ່ສຸດແມ່ນປະຕິບັດໃນກໍລະນີໃດ.

ໃນຄວາມເປັນຈິງ, ວິທີການເພື່ອຫຼີກເວັ້ນການເອີ້ນທີ່ສຸດມີ. ມັນຖືກເຊື່ອມຕໍ່ກັບການສໍາເລັດຂອງເຄື່ອງ virtual ໄດ້. ຊອກວິທີການປະຕິບັດມັນ, ມັນເປັນໄປໄດ້ໃນສະຖານທີ່ເປີດອິນເຕີເນັດ.

ຄໍາຖິ້ມ

ຖິ້ມສ້າງເປັນຂໍ້ຍົກເວັ້ນ. syntax ຂອງມັນແມ່ນເປັນດັ່ງຕໍ່ໄປນີ້:

ຖິ້ມ NewException ໃຫມ່ ();

ມີແມ່ນສ້າງຂໍ້ຍົກເວັ້ນໃຫມ່ເພື່ອປະເພດ NewException ໄດ້ (). ໃນຖານະເປັນປະເພດສາມາດຖືກນໍາໃຊ້ໄດ້ຖືກລວມເຂົ້າຢູ່ໃນມາດຕະຖານຫ້ອງຮຽນຫ້ອງສະຫມຸດ Java ແລະກໍານົດຜ່ານມາໂດຍການພັດທະນາຂອງການຜະລິດຂອງຕົນເອງໄດ້.

ການອອກແບບນີ້ແມ່ນສ່ວນຫນຶ່ງຂອງຄໍາອະທິບາຍຂອງວິທີການໃດຫນຶ່ງ, ຊຶ່ງເອີ້ນຫຼັງຈາກນັ້ນຄວນຈະເກີດຂຶ້ນພາຍໃນ block ພະຍາຍາມ, ໃນຄໍາສັ່ງເພື່ອໃຫ້ສາມາດສະກັດກັ້ນມັນ.

ຄໍາ throws

ຈະເປັນແນວໃດຖ້າຫາກວ່າໃນຂະບວນການຂອງການພັດທະນາຂອງສະຖານະການທີ່ວິທີການທີ່ສາມາດຖິ້ມຂໍ້ຍົກເວັ້ນ, ແຕ່ວ່າບໍ່ສາມາດທີ່ຈະຈັດການຢ່າງຖືກຕ້ອງໄດ້. ດ້ວຍເຫດນີ້, ໃນລາຍເຊັນວິທີການລະບຸຄໍາວ່າ throws ແລະປະເພດຂອງການຍົກເວັ້ນຄວາມເປັນໄປໄດ້.

ປ້າຍນີ້ແມ່ນປະເພດຂອງຕົວຊີ້ວັດສໍາລັບນັກພັດທະນາລູກຄ້າທີ່ມີວິທີທີ່ບໍ່ສາມາດທີ່ຈະຈັດການຍົກເວັ້ນດຽວກັນຂອງເຂົາເຈົ້າ. ໃນນອກຈາກນັ້ນ, ຖ້າຫາກວ່າປະເພດຄວາມຜິດພາດແມ່ນການກວດກາ, ຫຼັງຈາກນັ້ນ compiler ຈະບັງຄັບຢ່າງຊັດເຈນຂໍໃຫ້ມີການມັນ.

ພະຍາຍາມທີ່ຈະຊັບພະຍາກອນ

The Java ສະບັບພາສາ 7 ພັດທະນາໄດ້ປະກອບເປັນຄວາມຄິດສ້າງສັນທີ່ສໍາຄັນ, ເປັນ block ການປິ່ນປົວພະຍາຍາມທີ່ມີຊັບພະຍາກອນ.

ວັດຖຸຈໍານວນຫຼາຍກໍາລັງສ້າງໃນ Java, ຫຼັງຈາກການນໍາໃຊ້ຄວນຈະໄດ້ຮັບການປິດລົງເພື່ອອະນຸລັກຊັບພະຍາກອນ. ໃນເມື່ອກ່ອນມັນໄດ້ໃຊ້ເວລານີ້ເຂົ້າໃນບັນຊີແລະກໍລະນີຢຸດເຫຼົ່ານີ້ດ້ວຍຕົນເອງ. ໃນປັດຈຸບັນ, ແນວໃດກໍ່ຕາມ, ພວກເຂົາເຈົ້າໄດ້ປາກົດໃນການໂຕ້ຕອບ AutoClosable. ມັນຈະຊ່ວຍໃຫ້ປິດວັດຖຸທີ່ໃຊ້ແລ້ວຖືກເກັບໄວ້ໃນ block ພະຍາຍາມເປັນອັດຕະໂນມັດ. ໂດຍຜ່ານວິທີການນີ້ມັນໄດ້ກາຍເປັນຫຼາຍດວກຕໍ່ກັບຂຽນລະຫັດໃນການອ່ານຂອງຕົນໄດ້ເພີ່ມຂຶ້ນຢ່າງຫຼວງຫຼາຍ.

ຫ້ອງຮຽນຂອງຕົນເອງຍົກເວັ້ນ Java

ເພື່ອນ E- ຂອງພາສາການຂຽນໂປຣແກຣມອະທິບາຍໄດ້ເຂົ້າໄປໃນບັນຊີຈໍານວນຫຼາຍດ້ານຂອງປະເພດການອອກແບບຂອງລະນີສຸກເສີນ. ຢ່າງໃດກໍຕາມ, ທັງຫມົດຂອງທາງເລືອກໃນການປ້ອງກັນຜົນໄດ້ຮັບຂອງກິດຈະກໍາຈະບໍ່ໄດ້ເຮັດວຽກ, ສະນັ້ນໃນ Java ໃຊ້ຄວາມສາມາດໃນການກໍານົດຂໍ້ຍົກເວັ້ນຂອງຕົນເອງຂອງເຂົາເຈົ້າ, ມັນເປັນທີ່ເຫມາະສົມກັບຄວາມຕ້ອງການຂອງລະຫັດສະເພາະໃດຫນຶ່ງ.

ວິທີທີ່ງ່າຍທີ່ສຸດໃນການສ້າງ - ມູນມໍລະດົກຈາກທີ່ເຫມາະສົມກັບບໍລິບົດວັດຖຸໄດ້.

ມີເກີດຂຶ້ນກັບມູນມໍລະດົກຈາກຂໍ້ຍົກເວັ້ນ, ລະດັບທີ່ຖືກນໍາໃຊ້ເພື່ອກໍານົດຂໍ້ຍົກເວັ້ນຂອງທ່ານເອງ. ໃນ MyException ມີສອງ constructors - ເປັນໃນຕອນຕົ້ນ, ຄັ້ງທີສອງ - ມີການໂຕ້ຖຽງປະເພດ msg String.

ຫຼັງຈາກນັ້ນ, ໃນ f ວິທີ FullConstructors ຫ້ອງຮຽນສາທາລະນະປະຕິບັດ, ເຊິ່ງປະກອບດ້ວຍລາຍເຊັນການຖິ້ມ MyException. ຄໍານີ້ຫມາຍຄວາມວ່າ f ສາມາດຖິ້ມເຊັ່ນ: ຍົກເວັ້ນ Java MyException. ນອກຈາກນັ້ນ, ໃນຮ່າງກາຍວິທີຜະລິດຜົນຜະລິດຂໍ້ມູນຂ່າວສານຂໍ້ຄວາມທີ່ຈະ console ຕົວຂອງມັນເອງແລະ MyException ຮຸ່ນຕົວຈິງ, ໂດຍຖິ້ມ.

ວິທີທີສອງແມ່ນແຕກຕ່າງກັນເລັກນ້ອຍຈາກການທໍາອິດທີ່ເວລາທີ່ທ່ານສ້າງຂໍ້ຍົກເວັ້ນ, ມັນແມ່ນຜ່ານຕົວກໍານົດການຊ່ອຍແນ່, ຊຶ່ງຈະໄດ້ຮັບການສະທ້ອນໃຫ້ເຫັນໃນ console ຢູ່ຫມາຍເຖິງການຈັບ. ໃນຕົ້ນຕໍຂອງມັນແມ່ນຈະແຈ້ງວ່າ f () ແລະ g () ແມ່ນຖືກຈັດໃສ່ໃນການກວດສອບພະຍາຍາມແລະຈັບຄໍາຕັ້ງຄ່າໃຫ້ເກັບ MyException. ຜົນມາຈາກການປະມວນຜົນແມ່ນເພື່ອສະແດງຂໍ້ຄວາມຜິດພາດກັບ console ໄດ້:

ດັ່ງນັ້ນຈຶ່ງວ່າມັນມາຈະເພີ່ມການຍົກເວັ້ນ Java, ດ້ວຍມືຂອງຕົນເອງ.

ຍົກເວັ້ນຖາປັດຕະຍະ

ເຊັ່ນດຽວກັບວັດຖຸທັງຫມົດໃນເກາະຊາວາ, ຍົກເວັ້ນແມ່ນມໍລະດົກຍັງແລະມີໂຄງປະກອບການ hierarchical. ອົງປະກອບຂອງຮາກຂອງຄວາມຜິດພາດທັງຫມົດຖີ້ມໃນພາສາການຂຽນໂປຣແກຣມນີ້ເປັນລະດັບ java.lang.Throwable. ຮັບມໍລະດົກຈາກພຣະອົງທັງສອງປະເພດ - Error ແລະຍົກເວັ້ນ.

Error - ສັນຍານຂອງຄວາມຜິດພາດທີ່ສໍາຄັນແລະເປັນການຍົກເວັ້ນ Java ການກວດກາ. ການສະກັດກັ້ນແລະຂໍ້ມູນດັ່ງກ່າວປະມວນຜົນໃນກໍລະນີຫຼາຍທີ່ສຸດເກີດຂຶ້ນຢູ່ໃນຂັ້ນຕອນການອອກແບບແລະບໍ່ໄດ້ຢູ່ໃນຄວາມຕ້ອງການຂອງສະເຫນີໃນລະຫັດຄໍາຮ້ອງສະຫມັກສຸດທ້າຍ.

ຄາດນໍາໃຊ້ທົ່ວໄປສໍາລັບການສ້າງແລະການວິເຄາະຂໍ້ຍົກເວັ້ນແມ່ນຍົກເວັ້ນ. ເຊິ່ງ, ແລະເຮັດໃຫ້ການ, ໄດ້ແບ່ງອອກເປັນສາຂາຈໍານວນຫນຶ່ງ, ລວມທັງ RuntimeException. By RuntimeException ມີຂໍ້ຍົກເວັ້ນ runtime, ນັ້ນຄືເກີດຂຶ້ນໃນໄລຍະໂຄງການ. ຫ້ອງຮຽນທັງຫມົດມາຈາກມັນມີ unverified.

ປົກກະຕິແລ້ວມີຂໍ້ຍົກເວັ້ນ

ໃນການຍົກເວັ້ນ Java, ບັນຊີລາຍຊື່ຂອງທີ່ໄດ້ຖືກນໍາສະເຫນີຂ້າງລຸ່ມນີ້, ໄດ້ຖືກນໍາໃຊ້ຫຼາຍທີ່ສຸດມັກຈະ, ສະນັ້ນທ່ານຄວນຈະອະທິບາຍແຕ່ລະຂອງເຂົາເຈົ້າໃນລາຍລະອຽດ:

  • ArithmeticException. ເຫຼົ່ານີ້ປະກອບມີຄວາມຜິດພາດທີ່ກ່ຽວຂ້ອງກັບການດໍາເນີນງານກ່ຽວກັບເລກ. The glaring ທີ່ສຸດຍົກຕົວຢ່າງ - ພະແນກໂດຍສູນ.
  • ArrayIndexOutOfBoundsException - ຂໍອຸທອນກັບຈໍານວນອົງປະກອບ array ທີ່ເກີນຈໍານວນທັງຫມົດຂອງຄວາມຍາວຂອງຕົນ.
  • ArrayStoreException -. ຄວາມພະຍາຍາມທີ່ຈະກໍາຫນົດເປັນປະເພດອົງປະກອບທີ່ບໍ່ສາມາດອາເລ
  • ClassCastException - ຄວາມພະຍາຍາມເພື່ອເຮັດໃຫ້ຜິດພາດປະເພດຫນຶ່ງກັບຄົນອື່ນ.
  • IllegalArgumentException - ການນໍາໃຊ້ການໂຕ້ຖຽງທີ່ຜິດພາດໃນການໂທວິທີການໄດ້.
  • NegativeArraySizeException - ມີຂໍ້ຍົກເວັ້ນເວລາທີ່ທ່ານສ້າງ array ຂອງຂະຫນາດລົບໄດ້.
  • NullPointerException - misuse ຂອງເອກະສານເພື່ອ null.
  • NumberFormatException - ເກີດຂື້ນໃນເວລາທີ່ປ່ຽນໃຈເຫລື້ອມໃສ string ຜິດກັບ integer.
  • UnsupportedOperationException - ປະຕິບັດງານບໍ່ໄດ້ສະຫນັບສະຫນຸນ.

ຕົວຢ່າງເຫຼົ່ານີ້ເປັນຕົວແທນຂອງປະເພດຂອງການຍົກເວັ້ນ Java ການກວດກາໄດ້. ແຕ່ນັ້ນເບິ່ງກວດກາ:

  • ClassNotFoundException - Class ບໍ່ພົບ.
  • IllegalAcccessException - ຈໍາກັດການເຂົ້າເຖິງລະດັບການ.
  • InterruptedException - ການຂັດຂວາງຂອງການໄຫຼເຂົ້າຂອງ.
  • NoSuchFieldException - ບໍ່ມີພາກສະຫນາມທີ່ກໍານົດໄວ້.

ການຕີລາຄາການຍົກເວັ້ນ

ການປາກເວົ້າຂອງຍົກເວັ້ນພົບເລື້ອຍໆຄວນສັງເກດວ່າການຕີລາຄາຂອງເຂົາເຈົ້າໃນການອອກແບບ, ສາມາດຮັບຮູ້ເຂົ້າໃຈບໍ່ຖືກຕ້ອງ. ຕໍ່ໄປແມ່ນບັນຊີລາຍຊື່ສັ້ນອະທິບາຍໃນລາຍລະອຽດເພີ່ມເຕີມ, ບ່ອນທີ່ອາດຈະມີການສະຖານະການທີ່ບໍ່ຄາດຄິດ.

NullPointerException. ໃນກໍລະນີທໍາອິດທີ່ສຸດໃນເວລາທີ່ມີຂໍ້ຍົກເວັ້ນ, ແມ່ນເພື່ອຂໍອຸທອນກັບການອ້າງອິງເຖິງວັດຖຸທີ່ມີຄ່າເທົ່າກັບ null ເປັນ. ມັນຍັງລວມເຖິງການສູນວິທີການຍົກຕົວຢ່າງລະດັບ. NullPointerException ອາດຈະຖີ້ມໃນກໍລະນີຂອງໄດ້ຮັບການຍາວເທົ່າທຽມກັນ array null ໄດ້. ເພື່ອຫຼີກເວັ້ນການສະຖານະການດັ່ງກ່າວເປັນໄລຍະຈະກວດສອບສະຖານທີ່ກ່ຽວກັບ null ໄດ້.

ArrayIndexOutOfBoundsException. ໂຄງການໃດຫນຶ່ງບໍ່ສາມາດມີໂດຍບໍ່ມີການນໍາໃຊ້ຂອງອາເລ. ເພາະສະນັ້ນ, ຂໍຄວາມຊ່ວຍເຫລືອເລື້ອຍໆມັນສາມາດສ້າງແລະຄວາມຜິດພາດ. ຍົກເວັ້ນເກີດຂຶ້ນໃນເວລາທີ່ການພັດທະນາພະຍາຍາມໃນການເຂົ້າເຖິງອົງປະກອບ array ທີ່ບໍ່ໄດ້ຢູ່ໃນບັນຊີລາຍຊື່ດັດຊະນີໄດ້. ສໍາລັບຕົວຢ່າງ, ມູນຄ່າການຮ້ອງຂໍແມ່ນຂ້າງເທິງຫຼືຂ້າງລຸ່ມນີ້ສູນຍາວ. ຫຼາຍມັກຈະເປັນຜົນມາຈາກຄວາມຈິງທີ່ວ່າໃນອາເລເລີ່ມຕົ້ນດ້ວຍຄະແນນສູນໄດ້.

ສິ່ງທີ່ຄົ້ນພົບ

ການຈັດການຍົກເວັ້ນ Java - ສະພາບແວດລ້ອມເຄື່ອງມືປະສິດທິພາບ, ເຊິ່ງຢ່າງຫຼວງຫຼາຍສະການເຮັດວຽກຂອງໂຄງການດັ່ງກ່າວແລະອະນຸຍາດໃຫ້ເຂົາເພື່ອສ້າງຄວາມສະອາດແລະ devoid ຂອງຄວາມຜິດພາດລະຫັດ. ໃນຄໍາຮ້ອງສະຫມັກປະຕິບັດຫນ້າທີກ້ຽງແລະຫມັ້ນຄົງຂຶ້ນຢູ່ກັບສະຖານະພາບແລະຊື່ສຽງຂອງນັກພັດທະນາ.

ແນ່ນອນວ່າ, ໃນບັນດາໂຄງການງ່າຍດາຍຫຼາຍຫຼືຫນ້ອຍເພື່ອຕິດຕາມສະຖານະການຜິດປົກກະຕິຫຼາຍງ່າຍຂຶ້ນ. ແຕ່ໃນສະລັບສັບຊ້ອນຂະຫນາດໃຫຍ່ອັດຕະໂນມັດສໍາລັບການບໍ່ພໍເທົ່າໃດຮ້ອຍພັນສາຍມັນເປັນໄປໄດ້ພຽງແຕ່ເປັນຜົນມາຈາກການທົດສອບໃນໄລຍະຍາວແລະ debugging.

ສໍາລັບຄວາມຜິດພາດຍົກເວັ້ນ Java ຈາກທີ່ອາດເກີດຂຶ້ນໃນຄໍາຮ້ອງສະຫມັກບາງ, ບາງບໍລິສັດສະເຫນີໃຫ້ລາງວັນເປັນເວລາທີ່ພວກເຂົາເຈົ້າຊອກຫາທີ່ຊື່ນຊອບ. ຊື່ນຊົມໂດຍສະເພາະໂດຍຜູ້ທີ່ເຮັດໃຫ້ເກີດການລະເມີດຂອງຊອຟແວນະໂຍບາຍຄວາມປອດໄພໄດ້.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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