Sử dụng JavaScript đánh máy

Một số trường hợp bạn sẽ gặp phải lúc runtime error vì những biến không được định nghĩa hoặc gọi là những hàm chưa được định nghĩa, hoặc là lỗi do nhập sai, lỗi xuất hiện một cách không lường trước được.

Một lỗi runtime error là một lỗi rất nghiêm trọng

Nó sẽ hiển thị bộ mặt yếu kém của bạn cho người dùng thấy

Khi họ có trải nghiệm tệ hại

Mặc dù, Lỗi ở khắp mọi nơi

Tuy nhiên, bạn cần hiểu trước để bắt lỗi và xử lý nó


Sử dụng JavaScript đánh máy


Để giải quyết vấn đề này, ta có

2. Thử-Bắt-Cuối cùng


Cơ chế bắt và xử lý lỗi try - catch - finally trong JavaScript cũng tương tự như Java hay C#

Cú pháp thử - bắt - cuối cùng

// Khối lệnh có thể xảy ra lỗi

// Khối lệnh thực thi nếu có lỗi

// Khối lệnh này sẽ được thực thi

// cho dù có lỗi hay không lỗi


in which
  • _______2_______. Bao quanh vùng mã khả nghi, có khả năng sinh ra lỗi
  • catch { .. }. Xử lý thông tin nếu có lỗi. Kiểu như là tệp nhật ký hoặc là cơ sở dữ liệu nhật ký hoặc xuất ra màn hình để người thiết lập chương trình dễ kiểm tra. Hay đơn giản là điều hướng, thông báo lỗi một cách thân thiện hơn cho người dùng
  • finally { .. }. Đoạn mã này luôn được gọi để xử lý các nhiệm vụ còn lại, ví dụ như đặt lại biến hoặc các nhiệm vụ khác
  • Ví dụ. Là biến đại diện cho lỗi (bạn có thể đặt tùy chọn nào tùy thích). Nó sẽ nhận sáu giá trị khác nhau có thể được trả lại nếu chương trình bị lỗi. ( Chúng ta sẽ tìm hiểu ở phần bên dưới)

Một ví dụ về câu lệnh try - catch - finally


tài liệu. viết("

Lập trình JavaScript căn bản

");

tài liệu. viết("

Câu lệnh thử bắt trong JavaScript

");

cảnh báo("

Câu lệnh này có lỗi nè

"); //Cố tình để câu lệnh này có lỗi nè

tài liệu. viết("

Câu lệnh này đúng nè

");

tài liệu. viết("

If trong thử có lỗi thì dòng này sẽ chạy nè

");

"

Dòng này thông báo lỗi nè. " + cũ. toString()+ "

"

tài liệu. viết("

Cái này nó luôn chạy nè

");


Kết quả chạy trên trình duyệt như sau


Sử dụng JavaScript đánh máy


Kết quả trên cho thấy

+ First command line is in ra. Lập trình JavaScript cơ sở

+ Khối thử

  • Dòng lệnh đúng nhất trong ra văn bản trên trình duyệt
  • Dòng lệnh thứ hai sai từ khóa nên sẽ không thực thi và chuyển sang catch để bắt lỗi
  • Dòng lệnh thứ ba sẽ không được thực thi vì dòng lệnh phía trên nó đã bị lỗi

+ Khối bắt
  • First command line are in ra. Điều này có nghĩa là trong try có lỗi thì catch mới chạy
  • Dong command thứ hai. In error started being in string format

+ Khối cuối cùng
  • Dòng lệnh trong này chạy vì cho dù có lỗi hay không có lỗi ở phần try nên đoạn mã trong finally vẫn được thực thi

Một ví dụ khác về thử - bắt - cuối cùng

// Số tình hình log một biến chưa được khai báo

// Trong ra màn hình bảng điều khiển thông báo lỗi

bảng điều khiển. log("Không quan tâm lỗi hay không");


Khi chạy chương trình, kết quả nhận được là


c không được xác định
Error or not quan tâm


3. câu lệnh ném


Khi xảy ra lỗi, JavaScript sẽ tự động dừng và tạo thông báo lỗi

Khi đó JavaScript sẽ ném ra một ngoại lệ (ném a error)

JavaScript thực tế sẽ tạo ra một đối tượng lỗi (Error Object) với hai thuộc tính. Name (tên) và Thông báo lỗi (tin nhắn)

Nhưng khí sử dụng câu lệnh runtime error0, nó cho phép bạn tạo ra một tùy chỉnh lỗi (lỗi tùy chỉnh) của mình

Về mặt kỹ thuật một chút thì bạn có thể tự ném một ngoại lệ ra bên ngoài (ném một lỗi) mà bạn tạo ra

Ngoại lệ có thể là chuỗi JavaScript, số, boolean hoặc một đối tượng. Ném lệnh thông thường sẽ được đặt trong lần thử

Ví dụ


ném "Vô cực";


> Lưu ý. Sau khi câu lệnh runtime error0 được thực thi thì một lỗi sẽ gây ra, điều đó cũng đồng nghĩa với câu lệnh bị lị. Do đó, những câu lệnh sau throw sẽ không được thực thi nữa

Ví dụ. Mình sử dụng lại đoạn mã phía trên nhưng thêm vào câu lệnh ném trước câu lệnh bị lỗi trước đó


tài liệu. viết("

Lập trình JavaScript căn bản

");

tài liệu. viết("

Câu lệnh thử bắt trong JavaScript

");

throw "Lỗi đây mình tạo ra nè";

cảnh báo("

Câu lệnh này có lỗi nè

"); // Cố tình để câu lệnh này có lỗi nè

tài liệu. viết("

Câu lệnh này đúng nè

");

tài liệu. viết("

If trong thử có lỗi thì dòng này sẽ chạy nè

");

"

Dòng này thông báo lỗi nè. " + cũ. toString()+ "

"

tài liệu. viết("

Cái này nó luôn chạy nè

");


Kết quả như sau


Sử dụng JavaScript đánh máy


Dòng đầu tiên sẽ chạy tức thời là in ra. Lập trình JavaScript cơ sở

+ Khối thử

  • Dòng lệnh đúng nhất trong ra văn bản trên trình duyệt
  • Dòng lệnh thứ hai là dòng lệnh runtime error0 nên nó không suy nghĩ là lệnh sai sẽ chuyển sang catch
  • Các câu lệnh bên dưới sẽ dừng thực thi

+ Khối bắt
  • First command line are in ra. Điều này có nghĩa là trong try có lỗi (Lỗi do ném dòng lệnh) thì bắt mới chạy
  • Dòng lệnh thứ hai được thực thi. Cho thấy catch sẽ bắt lỗi từ runtime error0

+ Khối cuối cùng
  • Tương tự như ví dụ trên. Dòng lệnh cuối cùng này là tùy chọn bạn có thể sử dụng hoặc không

Ví dụ. Mình đang cố gắng sử dụng throw để kiểm tra điều kiện đầu vào

Đầu tiên ta có HTML


Nhập một số đường nhỏ hơn 100

Kiểm tra


Bây giờ, hãy tạo chức năng kiểm tra dữ liệu mà người dùng nhập


// Tạo hàm kiểm tra tra dữ liệu nhập vào

// Lấy số mà người dùng vừa nhập

var số = tài liệu. getElementById("số"). giá trị;

// Xử lý lỗi với thử bắt và ném

throw "Bạn chưa nhập giá trị";

throw "Giá trị bạn nhập không phải là một số";

throw "Giá trị vừa nhập nhỏ hơn giá trị cho phép";

ném "Giá trị vừa nhập lớn hơn giá trị cho phép";

tài liệu. getElementById("tin nhắn"). innerHTML="Hợp lệ";

tài liệu. getElementById("tin nhắn"). innerHTML= ví dụ;


Bây giờ, ta thêm hàm xử lý này vào sự kiện runtime error7. Khi người dùng nhập xong, hãy nhấp vào nút runtime error8 thì sẽ thực hiện hàm runtime error9


// Xử lý sự kiện nhấp nút

tài liệu. getElementById("btn"). addEventListener("click", checkInput);


Chạy trình duyệt để thử kết quả


Sử dụng JavaScript đánh máy


> Lưu ý. Câu lệnh runtime error0 có nghĩa là "NÉM" còn câu lệnh catch có nghĩa là "BẮT ĐẦU". Vì thế, runtime error0 ném ra cái gì thì catch bắt cái đó

4. Một số lỗi thường gặp


Như đã nói ở trên, JavaScript có một đối tượng lỗi được tích hợp sẵn để cung cấp thông tin lỗi mà bạn có thể truy cập thông tin qua biến đại diện try {...}4 (người ta hay sử dụng từ try {...}5)

Và đây là những lỗi thường gặp được tổng hợp lại

Errormodel description evalerrorlỗi xảy ra trong hàm eval () shuntorlỗi vượt quá khoảng giá trị lỗi tham chiếu tham chiếu không hợp lệ cú pháp oodiuuri -hung và hungrorl.
Để truy cập vào các thuộc tính try {...}6 và try {...}7 của các đối tượng bị lỗi, bạn chỉ cần thực hiện như sau

// Truy cập thông báo lỗi


Ví dụ

// Số tình gán lại giá trị cho hàng số

bảng điều khiển. nhật ký (Err. thông điệp);


Tổng kết


Vì thế là mình vừa giới thiệu cho các bạn về câu lệnh try - catch - finally JavaScript. Bạn cũng đã học được cách sử dụng câu lệnh ném để ném ra một tùy chỉnh lỗi

Các câu lệnh bắt và xử lý lỗi này rất hữu ích đúng không nào. Bạn làm lại các ví dụ để dễ hiểu hơn nhé. Hẹn gặp lại các bạn ở bài học tiếp theo