728x90
반응형

프로그램을 만들다 보면 많은 오류를 만나게 됩니다. 이러한 오류에 대해 예외적으로 오류를 처리할 수 있는 방법을 알아보도록 하겠습니다.

 

예외처리

오류 예외 처리 기법

아래의 형식으로 예외처리를 어떻게 할 수 있는지 알아보겠습니다.

# 1. try, except만 쓰는 방법
try:
    ...
except:
    ...
# =>  오류 종류에 상관없이 오류가 발생하면 except 블록을 수행


# 2. 발생 오류만 포함한 except문
try:
    ...
except 발생 오류:
    ...
# => 이 경우는 오류가 발생했을 때 except문에 미리 정해 놓은 오류 이름과 일치할 때만 except 블록을 수행

# 3. 발생 오류와 오류 메시지 변수까지 포함한 except문
try:
    ...
except 발생 오류 as 오류 메시지 변수:
    ...
# => 이 경우는 두 번째 경우에서 오류 메시지의 내용까지 알고 싶을 때 사용하는 방법

try ... finally

finally 절은 try 수행 도중 예외 발생 여부와 상관없이 무조건 수행이 됩니다. 이는 파일을 열고 닫는 부분에서 많이 사용을 합니다.

f = open('c:\\dev\\new.txt', 'w')
try:
    # 수행
finally:
    f.close()

여러개의 오류처리하기

try 문 안에서 여러개의 오류를 처리하기 위해서는 다음과 같은 형식을 사용합니다.

try:
    ...
except 발생 오류1:
   ... 
except 발생 오류2:
   ...

만약 발생 오류1, 발생 오류2 를 동일하게 처리하기 위해서는 괄호로 묶어 except (발생 오류1, 발생 오류2) as e 와 같은 형식으로 사용을 합니다.

 

오류 발생시키기

파이썬에서는 raise 명령어를 사용해 오류를 강제로 발생시킬 수 있습니다. 아래와 같은 형식으로 사용합니다.

raise 발생오류

 

예외 만들기

예외는 직접 만들어서 사용할 수 있습니다. 바로 상속을 이용을 하는 것입니다. 이때 상속을 받을 부모는 Exception 클래스입니다.

class MyError(Exception):
    pass

직접 만든 예외를 이용한 프로그램 코드 입니다.

class MyError(Exception):
    pass


def say_nick(nick):
    if nick == '바보':
        raise MyError()
    print(nick)


try:
    say_nick("천사")
    say_nick("바보")
except MyError:
    print("허용되지 않는 별명입니다.")
    
    
### 결과
천사
허용되지 않는 별명입니다.
728x90
반응형

+ Recent posts