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();
|