728x90
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
'Python' 카테고리의 다른 글
[파이썬] 사용자 정의 예외처리 (0) | 2020.09.15 |
---|---|
[파이썬] raise (0) | 2020.09.15 |
[파이썬] pass, super (0) | 2020.09.15 |
[파이썬] 메소드 오버라이딩 (0) | 2020.09.15 |
[파이썬] 상속, 다중 상속 (0) | 2020.09.15 |