라이브러리
[PHP] Throwable::getTrace - 스택 추적을 가져옵니다.
Throwable::getTrace
`Throwable::getTrace` 메소드는 예외 또는 오류가 발생한 시점의 호출 스택 정보를 반환하는 메소드입니다. 이 메소드는 `Exception` 클래스의 상속 관계에 있는 모든 예외 클래스에서 사용할 수 있습니다.
# 예제 1: 기본적인 사용법
#hostingforum.kr
php
function test() {
try {
$a = 1 / 0;
} catch (DivisionByZeroError $e) {
echo $e->getTraceAsString();
}
}
test();
이 예제에서는 `test` 함수 내에서 `1 / 0` 연산을 수행하여 `DivisionByZeroError` 예외를 발생시킵니다. 예외가 발생한 시점의 호출 스택 정보를 출력하기 위해 `getTraceAsString` 메소드를 사용합니다.
# 예제 2: 디버그 정보 출력
#hostingforum.kr
php
function test() {
try {
$a = 1 / 0;
} catch (DivisionByZeroError $e) {
echo $e->getTraceAsString();
echo "
";
echo $e->getTrace();
}
}
test();
이 예제에서는 `getTrace` 메소드를 사용하여 호출 스택 정보를 배열 형태로 출력합니다. `getTraceAsString` 메소드는 호출 스택 정보를 문자열로 출력합니다.
# 예제 3: 호출 스택 정보 필터링
#hostingforum.kr
php
function test() {
try {
$a = 1 / 0;
} catch (DivisionByZeroError $e) {
$trace = $e->getTrace();
foreach ($trace as &$frame) {
if (isset($frame['file']) && strpos($frame['file'], 'test.php') !== false) {
unset($frame);
}
}
echo $e->getTraceAsString();
}
}
test();
이 예제에서는 호출 스택 정보를 필터링하여 `test.php` 파일에 해당하는 호출 스택 정보를 제외합니다.
# 예제 4: 호출 스택 정보 정렬
#hostingforum.kr
php
function test() {
try {
$a = 1 / 0;
} catch (DivisionByZeroError $e) {
$trace = $e->getTrace();
usort($trace, function($a, $b) {
return $a['line'] - $b['line'];
});
echo $e->getTraceAsString();
}
}
test();
이 예제에서는 호출 스택 정보를 정렬하여 호출 스택 정보를 가장 최근에 호출된 함수부터 출력합니다.
결론
`Throwable::getTrace` 메소드는 예외 또는 오류가 발생한 시점의 호출 스택 정보를 반환하는 메소드입니다. 이 메소드는 예외 클래스의 상속 관계에 있는 모든 클래스에서 사용할 수 있습니다. 호출 스택 정보를 필터링, 정렬, 또는 문자열로 출력하는 등 다양한 방법으로 사용할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.