본문으로 건너뛰기

이벤트 및 예외

애플리케이션 통합에는 수명 주기 이벤트를 사용하고, 오류를 처리할 수 있는 경계에서 복구할 때는 예외 타입을 사용하십시오.

수명 주기 이벤트

이벤트Public 데이터전달 시점
FeedStartingEventfeed, target저장소와 경로 사전 검사가 끝난 뒤, 컨버터 해석과 스테이징 전입니다.
FeedFinishedEventfeed, target, path, paths생성된 모든 파일을 성공적으로 게시한 후입니다.

$target에는 대상별 생성의 대상 키가 들어가며 일반 피드에서는 null입니다. FeedFinishedEvent::$paths에는 게시된 모든 경로가 순서대로 들어 있습니다. $path는 호환성을 위해 유지되며 항상 첫 번째 경로를 담습니다.

입력 및 조회 오류

예외의미
InvalidFeedArgumentException콘솔 피드 ID가 유효하지 않습니다.
FeedNotFoundException요청한 피드 ID의 등록 정보가 없습니다.
InvalidExpressionException스케줄 표현식이 유효하지 않습니다.
UnknownFeedClassException구성된 피드 클래스를 해석할 수 없습니다.
UnexpectedClassException해석된 클래스가 예상 계약을 충족하지 않습니다.

대상 선택에는 SPL 예외가 사용됩니다. --target을 전달했을 때 피드 등록 ID를 제공하지 않았거나, 대상 키가 비어 있거나, 선택한 피드가 HasFeedTargets를 구현하지 않으면 feed:generate 명령은 InvalidArgumentException을 발생시킵니다. findTarget()null을 반환하면 UnexpectedValueException이 발생합니다.

직렬화 및 저장소 오류

예외의미
InvalidCsvRowExceptionCSV 행이 확정된 열 스키마와 일치하지 않습니다.
InvalidCsvValueExceptionCSV 필드를 스칼라 값으로 직렬화할 수 없습니다.
InvalidXmlCDataExceptionCDATA 값이 유효하지 않습니다.
InvalidXmlFragmentException원시 XML 조각이 유효하지 않습니다.
UnsupportedStorageDiskException선택한 Laravel 디스크가 FilesystemAdapter로 해석되지 않습니다.
OpenFeedException초안 출력 리소스를 열 수 없습니다.
WriteFeedException전체 출력을 기록할 수 없습니다.
CloseFeedException출력 리소스를 닫을 수 없습니다.
ResourceMetaException필요한 스트림 메타데이터를 사용할 수 없습니다.
FeedGenerationException특정 피드 클래스의 생성에 실패했습니다.

FeedGenerationException::getFeed()는 피드 클래스를 반환합니다. getFeedTarget()은 대상별 생성에서는 대상 키를, 일반 피드에서는 null을 반환합니다. 원래 오류는 getPrevious()로 확인할 수 있습니다.

애플리케이션에서 복구하거나 사용자에게 맥락을 제공할 수 있는 곳에서만 예외를 잡으십시오. 복구할 수 없는 생성 오류는 Laravel이 보고하도록 두십시오.

관련 문서