Цитата:
ООП? какой к черту ООП - это javascript. Здесь нет никаких ООП, есть только закос под ООП |
Цитата:
твою реализацию можно сломать одной строчкой window.onerror = null; Удачного дебага. |
Цитата:
Вопрос в другом - как сделать аналог trigger_error |
Ни Chrome, ни IE не добавляют в new Error информацию о строке и файле, только в фаерфоксе норм:
window.addEventListener("error", function (event) { alert(event); }); function triggerError(error) { var event; try { event = document.createEvent("ErrorEvent"); } catch (reason) { event = document.createEvent("Event"); } if (event.initErrorEvent) { event.initErrorEvent("error", false, false, error.message, error.fileName, error.lineNumber); } else { event.initEvent("error", false, false); event.message = error.message; event.filename = error.fileName; event.lineno = error.lineNumber; } event.stack = error.stack; window.dispatchEvent(event); } triggerError(new Error("test error"));Проверял в Chrome 35, Aurora 30 и IE11 Цитата:
|
Цитата:
Даже если в js чего-то нет (например Классов), то никто не мешает вам это реализовать самому! js - это полноценный объектно-ориентированный язык! |
Цитата:
кроссбраузерные только: Error.prototype.message Error.prototype.name Зачем строка? А если весь скрипт в одну строку будет? Можно ставить переменные-метки в частях кода и передавать эти метки в случае ошибки |
Цитата:
|
dmitry111,
Вопрос не в том "зачем", а КАК. Как сделать так, чтобы функция при вызове узнавала, в каком файле и на какой строке ее вызвали. |
Цитата:
Можно вместо строки передавать с ошибкой ее номер и основываться на нем. |
У кого php головного мозга тот должен понимать что номер строки скрипта и имя файла может быть взято из html в котором любой скрипт чуйствует себя как domа.
Это не считая таких форматов как инлайновые скрипты. Файл скрипта и номер строки в этом файле в JS это _частный_ случай. Хочет браузер показать - покажет, не хочет - не покажет. WScript даже номер символа демонстрирует. Ну и что? |
Часовой пояс GMT +3, время: 01:59. |