Exception 소개

고도몰의 Exception 를 소개하는 내용입니다.

  • 페이지의 전반적인 오류에 따른 처리를 할 수 있도록 지원합니다.

  • 정의되어 있지 않는 경우 시스템 Exception의 기본 예외처리를 사용합니다.

📌 Usage

Exception별 사용방법은 다음과 같습니다.

AlertBackException

경고창에 메시지 출력 후 페이지 뒤로 가기를 실행합니다.

if ($error !== false) {
    // some code...
} else {
    throw new AlertBackException('메시지');
}

AlertCloseException

경고창에 메시지 출력 후 브라우저를 닫습니다.

if ($error !== false) {
    // some code...
} else {
    throw new AlertCloseException('메시지');
}

LayerException

레이어에 메시지를 출력합니다.

사용예제 1

if ($error !== false) {
    // some code...
} else {
    throw new LayerException('메시지', null, null, $formId, $timer, $onUnBlock, $addScript, $isPrint);
}

사용예제 2

메시지가 자동으로 입력되며, 저장 후 레이어 사라지게 할 때 사용합니다.

if ($error !== false) {
    // some code...
} else {
    throw new LayerException();
}

AlertOnlyException

경고창에 메시지만 출력합니다.

if ($error !== false) {
    // some code...
} else {
    throw new AlertOnlyException('메시지');
}

AlertRedirectException

경고창에 메시지 출력 후 지정된 url로 이동합니다. 타겟을 지정하면 지정된 타겟에서 url을 호출합니다.

redirect만 원하는 경우 controller에서 $this->redirect($url)을 사용하세요.

if ($error !== false) {
    // some code...
} else {
    throw new AlertRedirectException('메시지', null, null, $url, $target);
}

HttpException

Request에 대한 서버 응답코드와 메시지를 담아 지정된 에러페이지로 출력합니다. StatusCode는 가이드 페이지 하단의 Status Code를 참고해주세요.

if ($error !== false) {
    // some code...
} else {
    throw new HttpException($message, 404);
}

DatabaseException

Query 실행으로 인해 Exception이 발생할 경우, $e->getQuery()Exception이 발생한 쿼리를 확인할 수 있습니다.

if ($error !== false) {
    // some code...
} else {
    try {
        throw new DatabaseException($message, $code, $previouis, $query);
    } catch (\Exception $e) {
        printf($e->getQuery());
    }
}

UploadException

파일 업로드시 사용하는 Exception으로 아래 정의된 Code를 넣어 사용합니다.

if ($error !== false) {
    // some code...
} else {
    try {
        // 업로드한 파일이 upload_max_filesize를 초과했습니다.
        throw new UploadException(UPLOAD_ERR_INI_SIZE);
        
        // 업로드한 파일이 지정된 파일크기보다 큽니다.
        throw new UploadException(UPLOAD_ERR_FORM_SIZE);
        
        // 파일이 일부분만 전송되었습니다.
        throw new UploadException(UPLOAD_ERR_PARTIAL);
        
        // 파일이 전송되지 않았습니다.
        throw new UploadException(UPLOAD_ERR_NO_FILE);
        
        // 임시 폴더가 없습니다.
        throw new UploadException(UPLOAD_ERR_NO_TMP_DIR);
        
        // 디스크에 파일 쓰기를 실패했습니다.
        throw new UploadException(UPLOAD_ERR_CANT_WRITE);
        
        // 확장에 의해 파일 업로드가 중지되었습니다.
        throw new UploadException(UPLOAD_ERR_EXTENSION);
        
        // 알려지지 않은 에러가 발생했습니다.
        throw new UploadException('정의되지 않은 코드');
    } catch (\Exception $e) {
        printf($e->getMessage());
    }
}

📌 Status Code

Last updated

Logo

©NHN COMMERCE Corp. All rights reserved.