JS Errors
27/08/2019
Câu lệnh try cho phép bạn kiểm tra một khối mã lỗi.
Câu lệnh catch cho phép bạn xử lý lỗi.
Câu lệnh throw cho phép bạn tạo ra các lỗi tùy chỉnh.
Câu lệnh finally cho phép bạn thực thi khối code, sau khi try và catch, bất kể kết quả như thế nào.
Câu lệnh try và catch
Câu lệnh try và catch luôn đi kèm với nhau:
try {
// Khối code cần kiểm tra lỗi
}
catch(err) {
// Khối code xử lý lỗi
}
Câu lệnh throw
Khi xảy ra lỗi, JavaScript thường sẽ dừng thực thi và tạo thông báo lỗi.
Thuật ngữ này gọi là: Throw an exception (throw an error)
Javascript tạo đối tượng Error với 2 thuộc tính: name và message .
Câu lệnh throw cho phép bạn tạo ra các lỗi tùy chỉnh.
Các exception trong Javascript có thể là : Number, String, Boolean hoặc Object.
throw "Too big"; // throw a text
throw 500; // throw a number
Nếu bạn sử dụng throw kết hợp với try và catch, bạn có thể kiểm soát luồng chạy của khối code và tạo thông báo lỗi tùy chỉnh.
Câu lệnh finally
Câu lệnh finally cho phép bạn thực thi khối code, sau khi try và catch, bất kể kết quả như thế nào.
try {
// Khối code cần kiểm tra lỗi
}
catch(err) {
// Khối code xử lý lỗi
}
finally {
// Khối code sẽ luôn chạy, bất kể kết quả của try/ catch
}
Ví dụ function kiểm tra 1 số nằm trong khoảng từ 5 đến 10:
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>
<script>
function myFunction() {
var message, x;
message = document.getElementById("p01");
message.innerHTML = "";
x = document.getElementById("demo").value;
try {
if(x == "") throw "iRỗng";
if(isNaN(x)) throw "Not a number";
x = Number(x);
if(x > 10) throw "Số quá lớn";
if(x < 5) throw "Số quá nhỏ";
}
catch(err) {
message.innerHTML = "Error: " + err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
</script>
Error object
Thuộc tính | Mô tả |
---|---|
name | Thiết lập hoặc trả về tên lỗi |
message | Thiết lập hoặc trả về nội dung thông báo (string) |
Error Name
6 giá trị khác nhau có thể được trả về bởi thuộc tính lỗi name:
Error Name | Mô tả |
---|---|
EvalError | Lỗi xảy ra trong function eval() |
RangeError | Một số nằm ngoài phạm vi |
ReferenceError | Một tham chiếu không hợp pháp |
SyntaxError | Lỗi cú pháp |
TypeError | Lỗi kiểu dữ liệu |
URIError | Lỗi xảy ra khi encodeURI() |