JS record error log/catch error
OnError provides three parameters for exception information, file paths, and the number of rows where the error code occurs.
Window.onerror = function (e,url,index) {var msg = E.message | | e| | "Unknown error"; Alert ("error message:" +msg+ ", Error Path:" +ul+ ", line number:" +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();
|