ການຊ່ວຍເຫຼືອ LibreOffice 26.2
ລ້າງຂໍ້ມູນຂໍ້ຜິດພາດ ແລະ ລະບຸວ່າຈະໃຫ້ເຮັດຫຍັງຕໍ່ໄປ.
Resume [ [0] | label | Next ]
0: ລ້າງຂໍ້ມູນຂໍ້ຜິດພາດ ແລະ ເຮັດຄຳສັ່ງທີ່ເປັນສາເຫດຂອງຂໍ້ຜິດພາດນັ້ນຄືນໃໝ່. 0 ແມ່ນສາມາດລະເວັ້ນໄດ້.
label: ລ້າງຂໍ້ມູນຂໍ້ຜິດພາດ ແລະ ກັບໄປເຮັດວຽກຕໍ່ທີ່ຕຳແໜ່ງປ້າຍຊື່ (label) ທີ່ລະບຸໄວ້ໃນຊັບຣູທິນປັດຈຸບັນ.
Next: ລ້າງຂໍ້ມູນຂໍ້ຜິດພາດ ແລະ ເຮັດວຽກໃນຄຳສັ່ງຖັດຈາກຄຳສັ່ງທີ່ເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດ.
ຂໍ້ມູນຂໍ້ຜິດພາດແມ່ນຖືກສ້າງຂຶ້ນດ້ວຍຟັງຊັນ Erl, Err ແລະ Error$.
Erl: ເລກແຖວໃນໂມດູນທີ່ເກີດຂໍ້ຜິດພາດ.
Err: ໝາຍເລກຂໍ້ຜິດພາດ.
Error[$]: ຄຳອະທິບາຍຂໍ້ຜິດພາດ.
ການໃຊ້ Resume ເພື່ອລ້າງຂໍ້ມູນຂໍ້ຜິດພາດ ຈະຊ່ວຍປ້ອງກັນບໍ່ໃຫ້ເງື່ອນໄຂທີ່ຖືກຈັດການແລ້ວສົ່ງຕໍ່ໄປຍັງຣູທິນທີ່ຮຽກໃຊ້.
ຣູທິນການຈັດການຂໍ້ຜິດພາດທົ່ວໄປປະກອບດ້ວຍ: ການແຈ້ງເຕືອນຜູ້ໃຊ້, ການແກ້ໄຂຂໍ້ຜິດພາດ, ການບັນທຶກຂໍ້ມູນຂໍ້ຜິດພາດ ຫຼື ການສົ່ງຂໍ້ຜິດພາດທີ່ກຳນົດເອງເຊິ່ງມາພ້ອມກັບຄຳອະທິບາຍວິທີແກ້ໄຂ. ໃຫ້ໃຊ້ Resume label ເມື່ອຕ້ອງການໃຊ້ກົນໄກດັ່ງກ່າວ.
Sub Error_Handling
try: On Error GoTo catch
' ໂຄ້ດຂອງຣູທິນຢູ່ບ່ອນນີ້
Error 91 ' ຕົວຢ່າງຂໍ້ຜິດພາດ
finally:
' ໂຄ້ດສຳລັບລ້າງຂໍ້ມູນຂອງຣູທິນຢູ່ບ່ອນນີ້
Exit Sub
catch:
Print Erl, Err, Error$
Resume finally
End Sub ' Error_Handling
ໃຊ້ Resume Next ໃນກໍລະນີ ເຊັ່ນ: ການລາຍງານຄວາມຜິດປົກກະຕິທີ່ພົບໃນລະຫວ່າງຂະບວນການເຮັດວຽກແບບຊ້ຳຄືນທີ່ບໍ່ຄວນຖືກຂັດຈັງຫວະ. ໃນກໍລະນີດັ່ງກ່າວ ອາດຈຳເປັນຕ້ອງມີຣູທິນການຈັດການຫຼາຍອັນ.
Sub Iteration
planets = Array("☿","♀","♁","♂","♃","♄","⛢","♆")
try:
On Error GoTo ReportAndProcessNext
For ndx = -3 To 11 Step 1
MsgBox planets(ndx)
Next
On Error GoTo 0 ' Stop error catching
finally:
Exit Sub
ReportAndProcessNext:
Print "Error "& Err &" at line "& Erl &" - "& Error$
Resume Next
End Sub ' Iteration
ການໃຊ້ Resume ໂດຍບໍ່ມີພາຣາມິເຕີ ເພື່ອເຮັດຄຳສັ່ງທີ່ຜິດພາດຄືນໃໝ່ ອາດຈະເໝາະສົມໃນບາງສະຖານະການ. ແນວໃດກໍຕາມ, ມັນອາດຈະເຮັດໃຫ້ເກີດການວົນຊ້ຳທີ່ບໍ່ມີວັນສິ້ນສຸດ (infinite loop) ໄດ້.