2009-10-15 25 views
5

Điều này liên quan đến IE vì IE là môi trường tôi đang sử dụng để kiểm tra điều này, nhưng tôi muốn biết liệu bạn có thể ảnh hưởng đến tính liên quan của thuộc tính đối tượng lỗi khi bạn ném lỗi. Hãy xem xét các javascript sau:Lỗi Javascript trong Javascript có liên quan đến lỗi đối tượng

function MyClass (Arg1, Arg2) // Line 5 of my.js 
{ 
    if (typeof Arg1 != "string") 
     throw new Error("Invalid argument passed for MyClass"); 
    // Do some other stuff here 
} 

Tiếp tục xuống mã của bạn bạn có

var myvar = new MyClass(100, "Hello"); // Line 3201 of my.js 

Vì vậy, ở trên sẽ ném ra một lỗi, nhưng lỗi được báo cáo trong các thông tin gỡ lỗi sẽ hiển thị các lỗi được ném vào dòng 9 của my.js thay vì dòng 3201. Đây có phải là thứ bạn có thể thay đổi bằng các phương pháp chuẩn không?

Trả lời

2

Điều bạn đang thực sự tìm kiếm là dấu vết ngăn xếp cho lỗi. Không có tiêu chuẩn cho điều này nhưng hầu hết các trình duyệt đều cung cấp một số phương tiện khám phá. Thực hiện tìm kiếm nhanh đi kèm với ví dụ js stack trace này.

+0

Cảm ơn câu trả lời của bạn, tôi đã xem xét truy tìm ngăn xếp mà không cần trình gỡ rối và tìm thấy liên kết khá hữu ích http://eriwen.com/javascript/js-stack-trace/. Tôi xây dựng Windows Desktop Gadgets (được xây dựng trên IE) và thay vì sử dụng Visual Studio để gỡ lỗi tôi thường chỉ xử lý window.onerror và cảnh báo với dòng/thông báo lỗi để tôi có thể đi thẳng vào nó trong mã - nó đủ nhanh và dễ dàng nhưng tôi có thể thấy cách nhìn thấy ngăn xếp có thể hữu ích hơn nữa. –

+0

Chỉ cần nhận ra liên kết của bạn là giống nhau - Rất tiếc :) –

+0

Đánh dấu phần này là câu trả lời vì đây là câu trả lời đầu tiên. Cảm ơn :) –

2

Trong firefox, bạn có thể sử dụng thuộc tính ngăn xếp khi bạn gặp lỗi. Trong các trình duyệt khác, bạn có thể sử dụng thuộc tính tin nhắn.

Hãy xem liên kết này về cách bắt số stacktrace.

+0

Tôi thấy rằng liên kết trước đó và nó khá thú vị, cảm ơn. –

Các vấn đề liên quan