Trong thế giới JS, SyntaxError CÓ THỂ là một ngoại lệ thời gian chạy. Ví dụ: điều này có thể xảy ra khi cố gắng phân tích cú pháp phản hồi JSON không phải là định dạng JSON. Máy chủ có thể gửi lại rất nhiều loại phản hồi, vì vậy nếu bạn gửi phản hồi nội dung HTML cho yêu cầu của bạn đang mong đợi JSON trong cơ thể, bạn sẽ nhận được một cú pháp SyntaxError
được ném trong JS. Trong trường hợp này, bạn sẽ nhận được thông báo lỗi giống như sau: SyntaxError: JSON Parse error: Unrecognized token '<'
.
Nhưng cũng có các cú pháp thời gian chạy khác mà bạn có thể nhận được. Mozilla có danh sách một số ở đây: SyntaxErrors for JSON parsing
Bạn có thể muốn nắm bắt các mã này trong mã của mình. Bạn có thể làm như vậy với một khối try/catch chung như thế này:
try {
JSON.parse('<html></html>');
} catch (e) {
console.log("I catch & handle all errors the same way.");
}
HOẶC bạn có thể tìm kiếm các Lỗi Cú pháp cụ thể là:
try {
JSON.parse('<html></html>');
} catch (e) {
if (e instanceof SyntaxError) {
console.log("I caught a pesky SyntaxError! I'll handle it specifically here.");
} else {
console.log("I caught an error, but it wasn't a SyntaxError. I handle all non-SyntaxErrors here.");
}
}
Mozilla có nhiều hơn info on JS errors and handling them.
liên quan: http://stackoverflow.com/questions/12219154/ignore-javascript-errors-in-a-page-and-continue-executing-the-script –