0
PHP의 ReflectionMethod :: invokeArgs()를 사용하여 정적 클래스 메서드를 호출합니다.PHP : ReflectionMethod :: invokeArgs() - 완료되지 않은 예외 추적
호출 된 메서드는 코드의 다른 위치에 예외를 throw 할 수 있습니다.
예외가 throw 될 때 예외 개체의 추적은 호출 된 메서드의 이름으로 끝나며 예외가 실제로 throw 된 줄을 알 수 없습니다.
예 :
class A
{
public static function methA()
{
$RC = new ReflectionClass('A');
$M = $RC->getMethod('methB');
return $M->invokeArgs(null, ['arg']);
}
public static function methB($arg)
{
//some code
throw new Exception('Exception thrown');
}
}
try
{
A::methA();
}
catch(Exception $e)
{
print_r($e->getTraceAsString()[0]);
}
출력 :
Array
(
[function] => methB
[class] => A
[type] => ::
[args] => Array
(
[0] => arg
)
)
내가 그리워하는 것은 예외가 발생 된 파일/라인입니다. 대신 마지막 항목에는 메서드 이름 만 포함됩니다.
예외 메시지를 통해 정보를 제공하지 않으면 해당 정보를 얻을 수있는 다른 방법이 있습니까?