2013-04-28 18 views
14

Tôi muốn nắm bắt các ngoại lệ chưa từng có trong Meteor và xử lý chúng một cách duyên dáng. Có tương tự với số process.on('uncaughtException', function(err) {}) của Node không?Có thể thiết lập một trình xử lý ngoại lệ chưa được nắm bắt toàn cục trong Meteor không?

Tôi quan tâm đến các giải pháp cả trong ứng dụng khách và máy chủ.

+2

điều này sẽ tốt đẹp nếu nó tồn tại, tôi đang sử dụng 'window.onerror = function (thông báo, url, linenumber) {...};' ở phía máy khách hiện tại –

+0

Tôi đang cố gắng tìm ra điều này công cụ quá cho máy chủ. Tuy nhiên, có vẻ như Meteor ít nhất cũng bắt được các ngoại lệ từ các phương thức máy chủ, và tự báo cáo chúng: ( – aknuds1

Trả lời

1

Tôi đang thử nghiệm ý tưởng này đối với xử lý ngoại lệ chưa xử lý phía máy chủ.

Fiber = Npm.require('fibers'); 
process.on('uncaughtException', function(err){ 
    console.log(err.message); 
    console.log(err.stack); 
    Fiber(function(){ 
     Logs.insert({ ... }) // Logs is a collection 
    }).run(); 
    process.exit(1) 
}; 
+1

Nó có hoạt động không? Tôi đã thử cài đặt một trình xử lý 'uncaughtException', nhưng nó không kích hoạt. bằng cách nào đó. – aknuds1

0

Tôi đã gặp khó khăn với điều này, kết thúc bằng cách ghi đè các phương thức điều khiển khác nhau, vì tôi có thể sống mà không có stacktraces. Lỗi được hiển thị trong cửa sổ giao diện điều khiển, do đó, điều này thực hiện mẹo cho tôi. process.on ('uncaughtException', ...) không hoạt động với Meteor, và vì một lý do lạ nào đó, chúng không cung cấp bất kỳ sự thay thế tốt nào.

This little library đã giúp tôi rất nhiều, sử dụng nó hoặc thử xem mã nguồn - rất ngắn và dễ hiểu.

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