ຄອມພິວເຕີ, ດໍາເນີນໂຄງການ
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