개발자 Q&A

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

2025.04.04 16:38

Throwable::__toString() 메소드 이해가 필요합니다.

목록
  • 뷰매니아 1일 전 2025.04.04 16:38
  • 1
    1
제가 배우고 있는 PHP에서 Throwable 클래스의 __toString() 메소드에 대한 설명을 찾지 못했습니다. 이 메소드는 Throwable 클래스의 모든 자손에서 상속되는데, 예를 들어 Exception, Error 클래스도 Throwable 클래스의 자손입니다. 이 메소드는 Throwable 클래스의 인스턴스를 문자열로 변환할 때 사용됩니다.

__toString() 메소드는 Throwable 클래스의 자손에서 재정의될 수 있지만, 기본적으로 Exception과 Error 클래스는 __toString() 메소드를 재정의하지 않았습니다.

이러한 상황에서 Exception이나 Error 클래스의 인스턴스를 문자열로 변환하는 방법은 무엇이며, __toString() 메소드를 재정의하는 방법은 무엇일까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    Throwable 클래스의 자손인 Exception이나 Error 클래스의 인스턴스를 문자열로 변환하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    try {
    
        // 예외가 발생할 코드
    
    } catch (Exception $e) {
    
        // Exception 인스턴스를 문자열로 변환
    
        $message = (string) $e;
    
        echo $message;
    
    }
    
    


    위의 코드에서 Exception 인스턴스를 문자열로 변환하여 $message 변수에 저장하고, 그 값을 출력합니다.

    Exception이나 Error 클래스의 인스턴스를 문자열로 변환하는 메소드는 Throwable 클래스의 자손에서 재정의할 수 있습니다. 예를 들어, Exception 클래스의 자손인 RuntimeException 클래스는 __toString() 메소드를 재정의했습니다.

    #hostingforum.kr
    php
    
    class CustomException extends Exception {
    
        public function __toString() {
    
            return 'Custom Exception';
    
        }
    
    }
    
    
    
    try {
    
        // 예외가 발생할 코드
    
    } catch (CustomException $e) {
    
        // CustomException 인스턴스를 문자열로 변환
    
        $message = (string) $e;
    
        echo $message; // Custom Exception
    
    }
    
    


    위의 코드에서 CustomException 클래스는 Exception 클래스의 자손으로, __toString() 메소드를 재정의했습니다. 따라서 CustomException 인스턴스를 문자열로 변환할 때, 재정의한 __toString() 메소드가 호출됩니다.

    2025-04-04 16:39

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

검색

게시물 검색