JavaScript thử...bắt...cuối cùng
Ví dụ
Ví dụ này có lỗi đánh máy trong khối thử . Thông báo sai chính tả.
Khối bắt lỗi và thực thi mã để xử lý lỗi:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
Hãy tự mình thử »Thêm ví dụ dưới đây.
Sự miêu tả
Khi xảy ra lỗi , JavaScript sẽ dừng và tạo thông báo lỗi.
Ghi chú
Thuật ngữ kỹ thuật cho việc này là: JavaScript ném một ngoại lệ .
JavaScript tạo một đối tượng Error với hai thuộc tính: name và message .
Tổ hợp câu lệnh try...catch...finally
cùng xử lý lỗi mà không dừng JavaScript.
Câu lệnh try
xác định khối mã sẽ chạy (để thử).
Câu lệnh catch
xác định một khối mã để xử lý bất kỳ lỗi nào.
Câu lệnh finally
xác định một khối mã sẽ chạy bất kể kết quả như thế nào.
Câu lệnh throw
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 Throw với try và Catch , 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 |
Thêm ví dụ
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>
Hãy tự mình thử »Câu lệnh cuối cùng thực thi mã, sau khi 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ãy tự mình thử »Hỗ trợ trình duyệt
try...catch
là một tính năng của ECMAScript3 (ES3).
ES3 (JavaScript 1999) được hỗ trợ đầy đủ trên tất cả các trình duyệt:
Chrome | Edge | Firefox | Safari | Opera | IE |
Yes | Yes | Yes | Yes | Yes | Yes |