핵심 예외

핵심 예외

Aspose.PSD FOSS for Python은 PSD/PSB 처리에 특화된 두 가지 예외 유형을 정의합니다: 문서를 파싱하는 동안 발생하는 PsdLoadException와 문서를 저장하는 동안 발생하는 PsdSaveException. 두 예외 모두 내장된 Exception를 상속하며, 메시지와 선택적인 inner_exception를 받아들입니다.


로드 시점 실패 포착

PsdLoadException은 문서를 파싱하는 동안 발생하는 여러 구조 검증 실패에 대해 발생합니다:

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadException

try:
    image = PsdImage.load(input_path)
except PsdLoadException as ex:
    print(f"Failed to load PSD/PSB file: {ex}")

일반적인 메시지에는 "Invalid PSD signature. Expected '8BPS' (0x38425053)."(파일이 PSD/PSB 서명으로 시작하지 않음), "Unsupported PSD version: {n}. ..."(버전 필드가 PSD도 PSB도 아님), 그리고 "{section} length {n} exceeds the enclosing section boundary."(섹션의 선언된 길이가 파일 실제 크기와 일치하지 않음)가 포함됩니다.


저장 시점 실패 포착

PsdSaveException은 이 FOSS 빌드에서 단 하나의 발생 지점을 가지고 있습니다 — 파스칼 문자열 길이 검사:

from aspose_psd_foss.coreexceptions.psdsaveexception import PsdSaveException

try:
    image.save(output_path)
except PsdSaveException as ex:
    print(f"Failed to save PSD/PSB file: {ex}")

그 메시지는 "PSD Pascal string length {n} exceeds the supported maximum 255." — 레이어 또는 리소스 이름이 255바이트를 초과할 때 발생합니다.


내부 예외 검사

두 예외 유형 모두 inner_exception 생성자 인수를 받아들이며, 이는 기본 I/O 실패로 인해 예외가 발생했을 때 채워집니다:

try:
    image = PsdImage.load(input_path)
except PsdLoadException as ex:
    if ex.inner_exception is not None:
        print(f"Underlying cause: {ex.inner_exception}")

NotSupportedException 패턴

다른 곳에 있는 API의 여러 속성 설정자들이 NotSupportedException 대신 PsdLoadException/PsdSaveException — 이것은 파싱이나 쓰기 실패가 아니라, 이 FOSS 빌드에서 의도적으로 읽기 전용으로 설정된 속성을 나타냅니다. 참조 Resources and Layers 영향을 받는 특정 속성에 대해.


팁 및 모범 사례

  • 로드 실패와 저장 실패를 구분해야 할 때 기본 Exception 대신 PsdLoadException와 PsdSaveException을 명시적으로 잡으세요.
  • ArgumentNullException (PsdImage.load이(가) None 스트림으로 호출될 때 발생)와 NotSupportedException은 별개의 예외 유형이며 — PsdLoadException/PsdSaveException의 변형이 아닙니다.

일반적인 문제

문제원인수정
PsdLoadException 지원되지 않는 버전에 대한파일의 버전 필드는 표준 PSD 또는 PSB 값이 아닙니다PSD/PSB 문서가 진본이며 손상되지 않았는지 확인하십시오
PsdSaveException에 대한 Pascal 문자열 길이레이어 또는 리소스 이름이 255바이트를 초과합니다저장하기 전에 값을 줄이십시오

FAQ

PsdLoadException와 PsdSaveException는 공통 기본 예외 유형을 공유합니까?

아니요 — 두 경우 모두 서로에게서가 아니라 내장된 Exception에서 직접 파생되며, 공유된 Aspose.PSD 기본 예외 클래스에서 파생되지 않습니다.

Exception를 잡으면 이 두 유형도 잡히나요?

예, 두 경우 모두 Exception에서 파생되기 때문입니다 — 하지만 특정 유형을 잡으면 로드 실패와 저장 실패를 구분할 수 있습니다.


API Reference 요약

클래스/메서드설명
PsdLoadException(message, inner_exception=None)문서 파싱 중에 발생함
PsdSaveException(message, inner_exception=None)문서 작성 중에 발생
NotSupportedException(message, inner_exception=None)read-only-in-this-FOSS-build 설정자에 의해 발생

참조

 한국어