프로그래밍 언어/Python

파이썬 예외 메시지를 출력하는 방법

Rateye 2021. 11. 26. 10:33
728x90
반응형
질문 : 파이썬 예외 메시지 캡처

import ftplib
import urllib2
import os
import logging
logger = logging.getLogger('ftpuploader')
hdlr = logging.FileHandler('ftplog.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
FTPADDR = "some ftp address"

def upload_to_ftp(con, filepath):
    try:
        f = open(filepath,'rb')                # file to send
        con.storbinary('STOR '+ filepath, f)         # Send the file
        f.close()                                # Close file and FTP
        logger.info('File successfully uploaded to '+ FTPADDR)
    except, e:
        logger.error('Failed to upload to ftp: '+ str(e))

이것은 작동하지 않는 것 같습니다. 구문 오류가 발생합니다. 모든 종류의 예외를 파일에 기록하는 데 적절한 방법은 무엇입니까?

답변

포착하려는 예외 유형을 정의해야합니다. 따라서 except Exception, e: 대신 except, e: 일반 예외 (어쨌든 기록 될 것임)에 대해 작성하십시오.

다른 가능성은 다음과 같이 전체 try / except 코드를 작성하는 것입니다.

try:
    with open(filepath,'rb') as f:
        con.storbinary('STOR '+ filepath, f)
    logger.info('File successfully uploaded to '+ FTPADDR)
except Exception, e: # work on python 2.x
    logger.error('Failed to upload to ftp: '+ str(e))

Python 3.x 및 최신 버전의 Python 2.x에서는 except Exception as eexcept Exception, e .

try:
    with open(filepath,'rb') as f:
        con.storbinary('STOR '+ filepath, f)
    logger.info('File successfully uploaded to '+ FTPADDR)
except Exception as e: # work on python 3.x
    logger.error('Failed to upload to ftp: '+ str(e))
출처 : https://stackoverflow.com/questions/4690600/python-exception-message-capturing
728x90
반응형