개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.25 13:22

Throwable::__toString 함수 이해를 부탁드립니다.

목록
  • 클린코더 19시간 전 2025.03.25 13:22 새글
  • 1
    1
인터페이스 Throwable은 PHP에서 예외를 처리하는 데 사용됩니다. Throwable::__toString 함수는 Throwable 인스턴스의 문자열 표현을 반환하도록 정의되어 있습니다. 하지만 이 함수가 실제로 어떻게 작동하는지 이해하지 못합니다.

예를 들어, 다음과 같은 코드를 고려해 보겠습니다.

php

class CustomException extends Exception {

    public function __toString() {

        return '커스텀 예외';

    }

}



try {

    throw new CustomException();

} catch (Exception $e) {

    echo $e;

}



이 코드는 CustomException 인스턴스를 catch 블록에서 처리합니다. 하지만 echo $e; 문은 CustomException 인스턴스의 문자열 표현을 출력하지 않습니다. 왜일까요?

이 문제를 해결하기 위해 Throwable::__toString 함수가 실제로 어떻게 작동하는지 알려주실 수 있나요?

    댓글목록

    profile_image
    나우호스팅  19시간 전



    Throwable::__toString 함수는 Throwable 인스턴스의 문자열 표현을 반환하는 데 사용됩니다. 이 함수는 인스턴스의 클래스 이름과 인스턴스의 메시지를 결합하여 문자열을 반환합니다.

    예를 들어, CustomException 클래스가 다음과 같이 정의되어 있다고 가정해 보겠습니다.

    #hostingforum.kr
    php
    
    class CustomException extends Exception {
    
        public function __toString() {
    
            return '커스텀 예외';
    
        }
    
    }
    
    


    이 경우, CustomException 인스턴스의 문자열 표현은 다음과 같이 반환됩니다.

    #hostingforum.kr
    
    
    CustomException: 커스텀 예외
    
    


    이것은 인스턴스의 클래스 이름인 `CustomException`과 인스턴스의 메시지인 `커스텀 예외`를 결합한 것입니다.

    이러한 동작은 Throwable::__toString 함수가 인스턴스의 클래스 이름과 메시지를 결합하여 문자열을 반환하기 때문입니다.

    따라서, echo $e; 문은 CustomException 인스턴스의 문자열 표현을 다음과 같이 출력합니다.

    #hostingforum.kr
    
    
    CustomException: 커스텀 예외
    
    


    이것은 인스턴스의 클래스 이름과 메시지를 결합한 문자열입니다.

    이 문제를 해결하기 위해 Throwable::__toString 함수가 실제로 어떻게 작동하는지 알려주신다면, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    class CustomException extends Exception {
    
        public function __toString() {
    
            return '커스텀 예외';
    
        }
    
    }
    
    
    
    try {
    
        throw new CustomException();
    
    } catch (Exception $e) {
    
        echo $e->__toString(); // 또는 echo (string) $e;
    
    }
    
    


    이 코드는 CustomException 인스턴스의 문자열 표현을 다음과 같이 출력합니다.

    #hostingforum.kr
    
    
    CustomException: 커스텀 예외
    
    

    2025-03-25 13:23

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,454건 / 8 페이지

검색

게시물 검색