JavaScript try/catch/finally 语句

定义和用法

try/catch/finally 语句处理代码块中可能发生的部分或全部错误,同时仍在运行代码。

错误可能是程序员造成的编码错误、错误输入导致的错误以及其他不可预见的情况。

try 语句允许您定义要在执行时测试错误的代码块。

ຖ້າເກີດຂໍ້ບັນຫາໃນບັນນາດ try, catch 语句ຈະອະນຸຍາດທ່ານໃຫ້ກໍານົດບັນນາດທີ່ຈະເຮັດ.

ບັນນາດ finally ຈະອະນຸຍາດທ່ານໃຫ້ເຮັດບັນນາດຫຼັງ try ແລະ catch, ໂດຍບໍ່ຄຳນຶງຜົນ.

ຄວາມອະທິບາຍ:catch ແລະ finally 语句ທັງສອງແມ່ນຄວາມອະນຸຍາດ, ແຕ່ຖ້າໃຊ້ try 语句, ທ່ານຕ້ອງໃຊ້ໜຶ່ງຂອງພວກມັນ (ບໍ່ແມ່ນທັງສອງນັບໃຫ້ໃຊ້ໄດ້).

ຄຳແນະນຳ:ຖ້າເກີດຂໍ້ບັນຫາ, JavaScript ຈະຢຸດຕິ, ແລະສ້າງຂໍ້ມູນຂໍ້ບັນຫາ. ຂໍ້ສະເໜີ throw 语句 ເພື່ອສ້າງຂໍ້ບັນຫາສຳລັບຕົວເລກ (ການປາກົດສິ່ງບັນຫາ). ຖ້າໃຊ້ throw ກັບ try ແລະ catch, ທ່ານຈະສາມາດຄວບຄຸມການໄລຍະຂອງລະບົບ ແລະສ້າງຂໍ້ມູນຂໍ້ບັນຫາສຳລັບຕົວເລກ.

ສຳລັບຂໍ້ມູນຂອງຂໍ້ບັນຫາ JavaScript, ຂໍ້ສະເໜີ JavaScript Error Tutorial.

ຄວາມຄິດຄະເນ

ໃນຄັ້ງນີ້, ພວກເຮົາໄດ້ຫຼັງມາຕົວໃນຄຳສັນຍານ (ໃນບັນນາດ try).

ຄັ້ງນີ້ຄວນຈະສະແດງ "Welcome guest!" ແຕ່ບັນປະໂຫຍດ alert ບໍ່ຖືກຂຽນຢ່າງຖືກຕ້ອງ.

catch ບັນນາດຈະຈັບຂໍ້ບັນຫາ, ແລະເຮັດບັນນາດທີ່ຈະຈັດການມັນ:

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
  adddlert("Welcome guest!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>

ທ່ານສວຍສະເໜີການທົດສອບ

ມີຫຼາຍຄົນ TIY ໃນບ່ອນດ້ານລຸ່ມຂອງເວັບ.

ສັນຍານ

try {
  tryCode - ບັນນາດທີ່ຈະສວບສວນ.
}
catch(err) {
  catchCode - ບັນນາດທີ່ຈະຈັດການຂໍ້ບັນຫາ.
} 
finally {
  finallyCode - ບັນນາດທີ່ຕ້ອງເຮັດທັນວ່າ try / catch ຜົນ.
}

ຄູ່ມູນປະເພດ

ປະເພດ ອະທິບາຍ
tryCode ຕ້ອງການ. ກຳນົດບັນນາດທີ່ຕ້ອງກວດຂໍ້ບັນຫາພາຍໃນຂະບວນການ.
err ຕ້ອງການ, ຖ້າໃຊ້ກັບ catch. ກຳນົດພັນທະບັດທີ່ອະນຸຍາດອະນຸຍາດການບັນຫາ. ພັນທະບັດຈະອະນຸຍາດອະນຸຍາດ Error Object (ບັນຈຸຂໍ້ມູນຂອງຂໍ້ບັນຫາ, ເຊັ່ນ ຂໍ້ຄວາມ "'addlert' is not defined"). ຖ້າສິ່ງບັນຫາແມ່ນເກີດຈາກຄຳສັ່ງ throw, ພັນທະບັດຈະອະນຸຍາດວັດຖຸທີ່ກໍານົດໃນຄຳສັ່ງ throw (ບັງບາດ "ຫຼາຍຄົນ" ບັນຈຸ).
catchCode ຄວາມອະນຸຍາດ. ຖ້າເກີດຂໍ້ບັນຫາໃນບັນນາດ try, ຄວາມລະບຸດທີ່ຕ້ອງເຮັດ. ຖ້າບໍ່ເກີດຂໍ້ບັນຫາ, ບັນນາດນີ້ຈະບໍ່ໄດ້ເຮັດ.
finallyCode ຄວາມອະນຸຍາດ. ທຸກຫຼັງຈາກຜົນຂອງ try / catch, ຄວາມລະບຸດທີ່ຕ້ອງເຮັດ.

ລາຍລະອຽດເຕັກນິກ

JavaScript 版本: ECMAScript 3

更多实例

ຄວາມຄິດຄະເນ

本例检查输入。如果值是错的,则抛出异常 (err)。

catch 语句捕获异常 (err) 并显示自定义错误消息:

<!DOCTYPE html>
<html>
<body>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="message"></p>
<script>
function myFunction() {
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "is Empty";
    if(isNaN(x)) throw "not a number";
    if(x > 10) throw "too high";
    if(x < 5) throw "too low";
  }
  catch(err) {
    message.innerHTML = "Input " + err;
  }
}
</script>
</body>
</html>

ທ່ານສວຍສະເໜີການທົດສອບ

ຄວາມຄິດຄະເນ

finally 语句让你在 try 和 catch 之后执行代码,而不管结果如何:

function myFunction()
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "Empty";
    if(isNaN(x)) throw "Not a number";
    if(x > 10) throw "Too high";
    if(x < 5) throw "Too low";
  }
  catch(err) {
    message.innerHTML = "Error: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

ທ່ານສວຍສະເໜີການທົດສອບ

ບູຊີເຊີນສະໜັບສະໜູນ

ຄຳສັ່ງ Chrome IE Firefox Safari Opera
try/catch/finally 支持 支持 支持 支持 支持

相关页面

ວິຊາສອນ JavaScript:ຄວາມຜິດພາດ JavaScript:

ປືກສາ JavaScript:ຄຳສັ່ງ throw JavaScript