dmitry111,
я уже переопределил window.onerror и написал функционал отправки/логирования. Теперь нужно написать функцию-аналог trigger_error из php.
Вот что есть
(function(){window.onerror = ErrorHandler;
/*** SETTING ***/
var url = window.location.protocol +"//"+ window.location.hostname +"/phpHandlerJSError.php";
var debug = true;
var serverLog = true;
function ErrorHandler(message, file, line){
if(!!serverLog){sendError(message, file, line);}
return !!debug ? false : true;
}
function sendError(message, file, line){
var xhr = getXHR();
var param = "message="+ encodeURIComponent(message) +"&";
param += "file="+ encodeURIComponent(file) +"&";
param += "line="+ encodeURIComponent(line);
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("HTTP_X_FORWARDED_FOR", "XmlHttpRequest");
/* tmp */
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
}
};
xhr.send(param);
}
function getXHR(){
try{return new XMLHttpRequest();}catch(e){}
try{return new ActiveXObject("Msxml2.XMLHTTP.3.0");}catch(er){}
throw new Error("This browser does not support XMLHttpRequest");
}
}());
При ошибке сработает ErrorHandler. В дополнение к этому нужна функция, которая будет сама узнавать в каком файле и на какой строке ее вызвали. То есть, в каком-то участке кода я ожидаю, что что-то может пойти не так. Я не хочу оборачивать этот участок кода в try...catch, ради того чтобы в try по условию бросить исключение.
Я хочу просто вызвать некий triggerError('ошибка') и продолжить выполнение. triggerError должен определить файл и строку, где его вызвали и вместе с ошибкой передаст это все в ErrorHandler, который и отправит все это на сервер