В настоящее время я пытаюсь реализовать автоматический репортер ошибок для приложения Flex и хочу возвращать на сервер сообщения об ошибках вместе с номером функции / строки, вызвавшей ошибку. По сути, я пытаюсь получить информацию getStackTrace () без перехода в режим отладки, потому что у большинства пользователей приложения скорее всего не будет отладочной версии flash player.
Мой текущий метод использует обработчик UncaughtErrorEvent для обнаружения ошибок, возникающих в приложении, но сообщение об ошибке возвращает только тип возникшей ошибки, а не ее местоположение (что означает, что оно бесполезно). Я сам пробовал реализовать getStackTrace (), используя функцию захвата имени, например
private function getFunctionName (callee:Function, parent:Object):String {
for each ( var m:XML in describeType(parent)..method) {
if ( this[m.@name] == callee) return m.@name;
}
return "private function!";
}
, но это будет работать только из-за arguments.callee, и поэтому не будет проходить через несколько уровней вызовов функций (она никогда не превысит мою ошибку слушатель событий).
Итак! У кого-нибудь есть идеи, как получать информативные сообщения об ошибках через глобальную обработчик событий ошибки?
РЕДАКТИРОВАТЬ : Похоже, возникло какое-то недоразумение. Я явно избегаю getStackTrace (), потому что он возвращает значение null, когда он не находится в режиме отладки. Я специально стараюсь избегать любого решения, использующего эту функцию.