Đối tượng lỗi JavaScript

Các đối tượng Lỗi khác nhau mà bạn sẽ tìm thấy trong JavaScript

JavaScript gives us 8 đối tượng lỗi, được đưa ra trong biểu thức try / catch tùy thuộc vào loại lỗi:

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

Hãy phân tích từng cái đó.

Error

Đây là lỗi chung và là lỗi mà tất cả các đối tượng lỗi khác kế thừa. Bạn sẽ không bao giờ thấy một phiên bản củaErrortrực tiếp, nhưng đúng hơn JavaScript kích hoạt một trong các lỗi khác được liệt kê ở trên, lỗi kế thừa từError.

Nó chứa 2 thuộc tính:

  • message: mô tả lỗi, một thông báo con người có thể đọc được sẽ giải thích lỗi gì đã xảy ra
  • name: loại lỗi xảy ra (giả sử giá trị của tên đối tượng lỗi cụ thể, ví dụ:TypeErrorhoặc làSyntaxError)

và chỉ cung cấp một phương pháp,toString(), chịu trách nhiệm tạo ra một chuỗi có ý nghĩa từ lỗi, có thể được sử dụng để in ra màn hình.

EvalError

Lỗi này được định nghĩa trong JavaScript hiện đại nhưng không bao giờ được JavaScript thực sự ném ra và vẫn tồn tại cho các mục đích tương thích. Nó đã được định nghĩa trong ECMAScript 3 nhưng nó không có trong tiêu chuẩn kể từ ECMAScript 5.1.

Nó được sử dụng để chỉ ra rằng chức năng toàn cụceval()đã được sử dụng không chính xác, theo cách không tương thích với định nghĩa của nó.

RangeError

ARangeErrorsẽ kích hoạt khi giá trị số không nằm trong phạm vi giá trị được phép của nó.

Ví dụ đơn giản nhất là khi bạn đặt độ dài mảng thành giá trị âm:

[].length = -1 //RangeError: Invalid array length

hoặc khi bạn đặt nó thành một số cao hơn4294967295

[].length = 4294967295 //4294967295
[].length = 4294967296 //RangeError: Invalid array length

(số ma thuật này được chỉ định trong đặc tả JavaScript là phạm vi tối đa của số nguyên không dấu 32 bit, tương đương vớiMath.pow(2, 32) - 1)

Dưới đây là các lỗi phạm vi phổ biến nhất mà bạn có thể phát hiện ra:

ReferenceError

AReferenceErrorcho biết rằng một giá trị tham chiếu không hợp lệ đã được phát hiện: một chương trình JavaScript đang cố gắng đọc một biến không tồn tại.

dog //ReferenceError: dog is not defined
dog = 2 //ReferenceError: dog is not defined

Lưu ý rằng câu lệnh trên sẽ tạo ra mộtdogbiến trên đối tượng toàn cục nếu không được chạy trongchế độ nghiêm ngặt.

Dưới đây là các lỗi tham khảo phổ biến nhất mà bạn có thể phát hiện ra:

SyntaxError

ASyntaxErrorđược nâng lên khi một lỗi cú pháp được tìm thấy trong một chương trình.

Dưới đây là một số ví dụ về mã tạo ra lỗi cú pháp.

Một câu lệnh hàm không có tên:

function() {
  return 'Hi!'
}
//SyntaxError: function statement requires a name

Thiếu dấu phẩy sau định nghĩa thuộc tính đối tượng:

const dog = {
  name: 'Roger'
  age: 5
}
//SyntaxError: missing } after property list

Dưới đây là các lỗi cú pháp phổ biến nhất mà bạn có thể phát hiện ra:

TypeError

ATypeErrorxảy ra khi một giá trị có kiểu khác với kiểu được mong đợi.

Ví dụ đơn giản nhất đang cố gắng gọi một số:

1() //TypeError: 1 is not a function

Dưới đây là các lỗi loại phổ biến nhất mà bạn có thể phát hiện ra:

URIError

Lỗi này xảy ra khi gọi một trong các hàm chung hoạt động với URI:

  • decodeURI()
  • decodeURIComponent()
  • encodeURI()
  • encodeURIComponent()

và chuyển một URI không hợp lệ.

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn js khác: