티스토리 뷰

 

try:
	code...
except (오류 종류):
	code...

try를 사용하고 try안의 코드에서 에러가 발생했을 경우 except에서 지정된 에러일 경우 except의 코드를 실행합니다.
except에서 오류 종류를 생략할 수 있는데 생략할 경우 어떤 에러가 발생하더라도 except 코드가 실행됩니다.


오류를 발생시켜봅니다.

print(3/0) 

ZeroDivisionError가 발생 (수를 0으로 나눌 수 없음)



try, except로 해당 오류를 예외처리해봅니다.

try:
    print(3/0)
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

--출력결과--
0으로 나눌 수 없습니다.


print(3/일) 을 입력하여 string처리 오류를 발생시켜봅니다.

try:
    print(3/일)
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

NameError가 발생했습니다.



try, except로 해당 오류를 예외처리해봅니다.

try:
    print(3/일)
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except NameError:
    print("문자열처리 오류 발생.")

--출력결과--
문자열처리 오류 발생.



그 외 모든 예외를 한번에 처리할 수 있습니다.

try:
    a = {}
    print(a[2])
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except NameError:
    print("문자열처리 오류 발생.")
except:
    print("예상치 못한 오류가 발생했습니다.")

--출력 결과--
예상치 못한 오류가 발생했습니다.



finally는 정상적으로 코드가 동작하는 경우와 에러가 발생하는 경우.
두 경우 다 코드가 실행되는 부분입니다.

정상 동작 (에러 발생 x)

try:
    print(3/2)
    print("try!")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
    print("except!")
finally:
    print("Hello\n")

--출력 결과--
1.5
try!
Hello


에러 발생

try:
    print(3/0)
    print("try!")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
    print("except!")
finally:
    print("Hello\n")

--출력 결과--
0으로 나눌 수 없습니다.
except!
Hello

728x90

'Python' 카테고리의 다른 글

[파이썬] 사용자 정의 예외처리  (0) 2020.09.15
[파이썬] raise  (0) 2020.09.15
[파이썬] pass, super  (0) 2020.09.15
[파이썬] 메소드 오버라이딩  (0) 2020.09.15
[파이썬] 상속, 다중 상속  (0) 2020.09.15
댓글
댓글쓰기 폼
공지사항