JavaScript cung cấp một cơ chế để xử lí các ngoại lệ xuất hiện trong chương trình. Khi phát hiện ngoại lệ, lệnh throw sẽ phát sinh một đối tượng ngoại lệ với kiểu ngoại lệ được gán cho thuộc tính name và mô tả về ngoại lệ được gán cho thuộc tính message. Đối tượng ngoại lệ sẽ được “bắt lấy” bởi lệnh try catch. Ví dụ:
var add = function (a, b) { if (typeof a !== 'number' || typeof b !== 'number') { // ngoại lệ sẽ phát sinh khi đối số nhập vào không phải số throw { name: 'Lỗi', message: 'giá trị không phải số' }; } return a + b; }
Bắt ngoại lệ trên bằng lệnh try catch khi đối số truyền cho add không phải là số như đoạn mã dưới đây:
var try_it = function () { try { alert(add("seven",3)<strong>);</strong> } catch (e) { alert(e.name + ': ' + e.message); } } try_it();
Đoạn mã trên chỉnh sửa thành không bị lỗi như sau:
var try_it = function () { try { alert(add(3,3))<strong>;</strong> } catch (e) { alert(e.name + ': ' + e.message); } } try_it();
Ý kiến bài viết