잡동사니

반응형

질문

 

파이썬 코드 실행을위한 작은 소프트웨어를 작성 중이며 예외를 print하고 싶습니다. 다음 기능이 실행됩니다.

def run(self, mode='activate'):
    try:
        exec(self.mycode)
    except Exception:
        print(traceback.format_exc())

exec () 함수에서 정확히 실행될 것에 대한 정보는 없으며 문자 그대로 파이썬 코드 일 수 있습니다. 예외가 발생한 exec () 함수에 전달 된 코드 줄을 포함하여 exec ()를 통해 실행하는 동안 (예 : 코드 오류로 인해 파이썬이 자동으로 자동으로) 예외를 print하고 싶습니다.지금까지는 예외 코드 출력으로 'exec (mycode)'만 가져올 수 있었지만 mycode 에서 충돌 한 실제 코드 줄이 필요합니다.

 

답변1

 

이 시도 :

def run(self, mode='activate'):
    try:
            exec(your_code)
                except Exception as e: 
                        print(e)

이 작동합니다!

 

답변2

 

이 줄을 추가하십시오 traceback.print_exc ()

def run(self, mode='activate'):
    try:
        exec(your_code)
    except Exception as e: 
        print(e)

그러면 예외 정보가 제공되고 예외 / 오류가 발생한 행 번호도 제공됩니다!

 

 

 

 

 

출처 : https://stackoverflow.com/questions/59201472/how-to-print-python-exception-thrown-inside-exec-function-from-outside

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band