標籤:class blog code java http com
JS記錄錯誤記錄檔/捕捉錯誤
//onerror提供異常資訊,檔案路徑和發生錯誤碼的行數的三個參數。
window.onerror = function(e,url,index){ var msg = e.message || e|| "未知錯誤"; alert("錯誤資訊:"+msg+",錯誤路徑:"+ul+",行數:"+index); }
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
var logger = (function(){ var loghost = ‘http://127.0.0.1/log.gif?‘; var log = function(err){ var img = new Image(0,0); var _url =[]; _url.push(‘name‘+‘=‘+encodeURIComponent(err.name)); _url.push(‘message‘+‘=‘+encodeURIComponent(err.message)); _url.push(‘location‘+‘=‘+encodeURIComponent(err.location)); if(err.line) _url.push(‘line‘+‘=‘+encodeURIComponent(err.line)); if(err.func) _url.push(‘func‘+‘=‘+encodeURIComponent(err.func)); var url = _url.join(‘&‘); img.src = loghost+url; console.log(img.src); } return {log:log}; })(); function trapError(msg, URI, ln) { // wrap our unknown error condition in an object var error = new Error(msg); error.location = URI; // add custom property error.line = ln; logger.log(error); warnUser(); return true; // stop the yellow triangle } window.onerror = trapError; function foo() { try { riskyOperation(); } catch (err) { // add custom property err.location = location.href; err.func = ‘foo‘; logger.log(err); warnUser(); } } function warnUser() { alert("An error has occurred while processing this page.\ Our engineers have been alerted!"); // do something } foo(); |