16. 예외 처리 > 파이썬 기초

본문 바로가기

사이트 내 전체검색

이전으로파이썬 기초

16. 예외 처리

페이지정보

글쓴이 관리자 조회 35,315 조회 날짜 19-05-28 15:40 / U:19-05-29 14:02
댓글 0댓글

SNS 공유

  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

내용

예외 처리 ( try ~ except)

 

프로그램을 만들면 오류가 생기기 마련이다.

 

프로그램을 실행시킬때 컴파일러는 오류가 생기면 무슨 오류가 어느 곳에서 발생했는지 친절하게 알려준다.

 

오류 메시지만 잘 확인해도 대부분의 버그는 고칠 수 있다.

 

 

그리고 프로그램이 지속적으로 실행되다보면  입력되는 데이터가 문제가 생긴다던가, 데이터의 타입이 일정치 않다던가 하는 문제로 어쩔 수 없이 오류가 발생하는 경우가 있다.

 

파이썬은 인터프리터 언어이므로 코드가 순차적으로 진행되다가 오류를 만나면 이후의 코드는 실행되지 않는다.

 

소위 말하는 먹통이 되거나, 프로그램 자체가 종료된다. 

 

따라서 이럴 경우 예외 처리를 해줌으로 인해서 오류가 난 부분을 처리해줘야만 프로그램이 지속적으로 실행이 가능하게 된다.

 

오류를 처리하는 구문은 

 

try ~ except 구문이다.

 

사용방법

 

try:

    실행 코드

except:

    오류 생긴 후 실행할 코드

 

 

오류가 발생하는 경우

print("사람이 먼저다" + 10)
Traceback (most recent call last):
  File "C:\JBMPA\lecture\tryexcept.py", line 4, in <module>
    print("사람이 먼저다" + 10)
TypeError: can only concatenate str (not "int") to str

 

오류 메시지를 보면 TypeError 이다. 즉 문자와 숫자를 합칠 수 없다는 메시지이다.

이 오류를 고치기 위해서는 10이라는 숫자를 str(10)과 같이 문자열로 변환하면 되지만, 예외(오류) 처리를 연습해본다.

 

오류 처리

try:
    print("사람이 먼저다" + 10)
except TypeError:
    print("에러 발생")

에러 발생

 

 

위의 예외 처리에서 우리는 에러가 나는 이유를 TypeError라고 알고 있기 때문에 오류의 종류를 TypeError 라고 명시했다. 이는 TypeError 오류만 처리를 해준다. 

 

하지만 어떤 오류가 날지 모를때는 오류 타입을 명시하지 않고 사용하면 된다.

 

오류 타입 없이 처리

try:
    print("사람이 먼저다" + 10)
except:
    print("에러 발생")
에러 발생

 

 

오류 메시지를 따로 확인하고 싶다면, 오류 메시지 변수를 사용할 수 있다.

 

오류 타입을 지정하여 메시지를 표시하는 방법

try:
    print("사람이 먼저다" + 10)
except TypeError as e:

    print(e)
    print("에러 발생")

can only concatenate str (not "int") to str
에러 발생

 

 

오류 타입 없이 메시지를 표시하는 방법

try:
    print("사람이 먼저다" + 10)
except Exception as e:

    print(e)
    print("에러 발생")

can only concatenate str (not "int") to str
에러 발생

 

 

try ~ finally

 

try 구문을 실행하면서 오류 발생과 관계없이 항상 수행되는 코드를 만들 수 있다. try와 finally를 사용하면 된다.

try:
    print("사람이 먼저다" + 10)
except Exception as e:
    print(e)
    print("에러 발생")
finally:
    print("항상 실행")
can only concatenate str (not "int") to str
에러 발생
항상 실행

 

 

 

 

오류 처리는 여러 개의 오류를 지정하여 처리할 수 있다.

try:
    print("사람이 먼저다" + 10)
except TypeError
as e:
    print(e)
    print("타입 에러 발생")

except SyntaxError as e:
    print(e)
    print("구문 에러 발생")  

except Exception as e:
    print(e)      

finally:
    print("항상 실행")
can only concatenate str (not "int") to str
타입 에러 발생
항상 실행

 

 

만약 오류 발생시 아무 것도 안하고 오류 부분을 넘기고 싶다면, pass를 입력하면 된다.

 

try:
    print("사람이 먼저다" + 10)
except:

    pass

 

 

 

3109821002_1559079608.9145.png

 

댓글목록

댓글이 없습니다

게시물 검색
총 30 건 , 1 페이지
올서베이넷
무료 온라인 설문 사이트
OVITII
웹 프레젠테이션 도구
Copyright © JBMPA.com All rights reserved.
사이트 언어 선택
PC 보기