JavaScript thử ... bắt ... cuối cùng
Thí dụ
Ví dụ này có lỗi đánh máy trong khối thử . Cảnh báo bị sai chính tả.
Khối catch bắt lỗi và thực thi mã để xử lý nó:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
Thêm ví dụ bên dưới.
Định nghĩa và Cách sử dụng
Khi xảy ra lỗi , JavaScript sẽ dừng và tạo ra thông báo lỗi.
Ghi chú
Thuật ngữ kỹ thuật cho điều này là: JavaScript ném một ngoại lệ .
JavaScript tạo một đối tượng Lỗi với hai thuộc tính: tên và thông báo .
Tổ try...catch...finally
hợp câu lệnh xử lý lỗi mà không dừng JavaScript.
Câu try
lệnh xác định khối mã để chạy (để thử).
Câu catch
lệnh xác định một khối mã để xử lý bất kỳ lỗi nào.
Câu finally
lệnh xác định một khối mã để chạy bất kể kết quả.
Câu throw
lệnh xác định một lỗi tùy chỉnh.
Cả hai catch
và finally
đều là tùy chọn, nhưng bạn phải sử dụng một trong số chúng.
Ghi chú
Sử dụng ném với thử và bắt , cho phép bạn kiểm soát luồng chương trình và tạo thông báo lỗi tùy chỉnh.
Xem thêm:
Cú pháp
try {
tryCode - Code block to run
}
catch(err) {
catchCode -
Code block to handle errors
}
finally {
finallyCode - Code block to be executed regardless of the try result
}
Thông số
Parameter | Description |
tryCode | Required. Code block to be tested while executing. |
err | A local reference to the error object. |
catchCode | Optional. Code block to execute if an error occurs. |
finallyCode | Optional. Code block to execute regardless of the try result |
Các ví dụ khác
Ví dụ này kiểm tra đầu vào.
Nếu giá trị sai, một ngoại lệ (err) sẽ được đưa ra:
<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() {
const message =
document.getElementById("message");
message.innerHTML = "";
let 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>
Câu lệnh cuối cùng thực thi mã, sau bất kể kết quả thử:
function myFunction()
const message =
document.getElementById("message");
message.innerHTML = "";
let 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 = "";
}
}
Hỗ trợ trình duyệt
try...catch
là một tính năng ECMAScript3 (ES3).
ES3 (JavaScript 1999) được hỗ trợ đầy đủ trong tất cả các trình duyệt:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |