Câu lệnh try/catch/finally trong JavaScript
- Trang trước throw
- Trang tiếp theo var
- Quay lại lớp trên Sách tham khảo câu lệnh JavaScript
Định nghĩa và cách sử dụng
Câu lệnh try/catch/finally xử lý phần hoặc toàn bộ lỗi có thể xảy ra trong khối mã, đồng thời vẫn thực thi mã.
Lỗi có thể do lỗi mã viết bởi nhà phát triển, lỗi đầu vào không chính xác gây ra lỗi và các tình huống không thể dự đoán trước khác.
Câu lệnh try cho phép bạn định nghĩa khối mã cần kiểm tra lỗi khi thực thi.
Nếu xảy ra lỗi trong khối try, câu lệnh catch cho phép bạn định nghĩa khối mã cần thực hiện.
Câu lệnh finally cho phép bạn thực hiện mã sau try và catch, bất kể kết quả là gì.
Ghi chú:Cả câu lệnh catch và finally đều là tùy chọn, nhưng cần sử dụng một trong số chúng khi sử dụng câu lệnh try (nếu không phải cùng lúc).
Lưu ý:Khi xảy ra lỗi, JavaScript thường dừng lại và tạo thông báo lỗi. Sử dụng lệnh throw để tạo lỗi tùy chỉnh (ném ngoại lệ). Nếu sử dụng throw cùng với try và catch, bạn có thể kiểm soát luồng chương trình và tạo thông báo lỗi tùy chỉnh.
Để biết thêm về lỗi JavaScript, hãy học bài học về lỗi JavaScript.
Mẫu
Trong ví dụ này, chúng ta đã đánh dấu sai chữ trong mã của mình (trong khối try).
Ví dụ này nên hiển thị "Welcome guest!", nhưng có lỗi về chính tả của alert.
Khối catch sẽ bắt lỗi và thực hiện mã để xử lý nó:
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> try { adddlert("Welcome guest!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script> </body> </html>
Có thêm nhiều ví dụ TIY dưới cùng của trang.
Cú pháp
try { tryCode - Khối mã cần thử } catch(err) { catchCode - Khối mã để xử lý lỗi } finally { finallyCode - Khối mã cần thực hiện không phụ thuộc vào kết quả của try / catch }
Giá trị tham số
Tham số | Mô tả |
---|---|
tryCode | Bắt buộc. Khối mã cần kiểm tra lỗi khi thực thi. |
err | Bắt buộc, nếu sử dụng cùng với catch. Định nghĩa biến cục bộ tham chiếu lỗi. Biến này có thể tham chiếu đến đối tượng Error (chứa thông tin về lỗi đã xảy ra, chẳng hạn như thông điệp "'addlert' is not defined"). Nếu lỗi được tạo bởi lệnh throw, biến này tham chiếu đến đối tượng được chỉ định trong lệnh throw (xin xem thêm "Các ví dụ khác"). |
catchCode | Tùy chọn. Nếu xảy ra lỗi trong khối try, cần thực hiện khối mã. Nếu không xảy ra lỗi, khối mã này sẽ không bao giờ được thực hiện. |
finallyCode | Tùy chọn. Mặc dù kết quả của try / catch là gì, nhưng vẫn cần thực hiện khối mã. |
Chi tiết kỹ thuật
Phiên bản JavaScript:} | ECMAScript 3 |
---|
Ví dụ thêm
Mẫu
Ví dụ này kiểm tra đầu vào. Nếu giá trị là sai, thì ném ngoại lệ (err).
câu lệnh catch bắt giữ ngoại lệ (err) và hiển thị thông báo lỗi tùy chỉnh:
<!DOCTYPE html> <html> <body> <p>Bitte geben Sie eine Zahl zwischen 5 und 10 ein:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">Kiểm tra Nhập liệu</button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "Trống"; if(isNaN(x)) throw "Không phải số"; if(x > 10) throw "Quá cao"; if(x < 5) throw "Quá thấp"; } catch(err) { message.innerHTML = "Nhập " + err; } } </script> </body> </html>
Mẫu
câu lệnh finally cho phép bạn thực hiện mã sau khi try và catch, bất kể kết quả như thế nào:
function myFunction() var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "Trống"; if(isNaN(x)) throw "Không phải số"; if(x > 10) throw "Quá cao"; if(x < 5) throw "Quá thấp"; } catch(err) { message.innerHTML = "Lỗi: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
trình duyệt hỗ trợ
câu lệnh | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
try/catch/finally | Hỗ trợ | Hỗ trợ | Hỗ trợ | Hỗ trợ | Hỗ trợ |
Trang liên quan
Giáo trình JavaScript:Lỗi JavaScript
Tài liệu tham khảo JavaScript:Câu lệnh throw của JavaScript
- Trang trước throw
- Trang tiếp theo var
- Quay lại lớp trên Sách tham khảo câu lệnh JavaScript