parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

$caller и @unhandled_exception[]

Maxx 08.04.2009 12:02 / 08.04.2009 12:04

Наткнулся на интересную фичу (багу, особенность, не знаю). В методе @unhandled_exception нельзя получить через $caller значения переменных из того места, где этот exception случился.

Т.е. на примере кода, когда мы вызываем какой-нибудь метод явно:
@main[][x]
$x[test_x]
^method[]

@method[][x]
^$caller.x in @method: $caller.x

# результат:
# $caller.x in @method: test_x
А вот так - облом:
@main[][x]
$x[test_x]

^throw[Caller test;;]

@unhandled_exception[e;s]
^$caller.x in @unhandled_exception: $caller.x <br />

# результат:
# $caller.x in @unhandled_exception:
Как то можно из узнать то, что хочется или это принципиально невозможно?

Нужно это для элементарной вещи - отладки, при падении в @ue берется значение заведомо известной переменной(ых) и их состояние кладется в лог. Просто взять переменную нельзя, так как она не всегда глобальная, может быть как локально объявленной, так и быть передаваемым параметром.

  • $caller и @unhandled_exception[], Maxx [M] 08.04.2009 12:02 / 08.04.2009 12:04