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
반응형