AboutPython
[파이썬] 예외처리
scone
2022. 5. 4. 11:52
[예외, 에러]
- 예외란, 문법적인 문제는 없으나 발생하는 예상하지 못한 문제
- 에러란, 소프트웨어적으로 처리할 수 없는 문제
ex) 문법적, 네트워크 환경, 천재지변 등 - 다음은 문법적으로는 문제가 없으나 실행 도중에 발생하는 예외의 한 예시이다.
(그렇다고 해서 예외와 에러를 엄밀하게 구분해서 사용하는 것은 아니다.)
>>> 10/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
[예외 관련 클래스는 Exception 클래스를 상속한다.]
- 대표적인 예외 클래스들
Exception
ArithmeticError
ZeroDivisionError : 0으로 나눴을 때
EnvironmentError
IOError : 입출력 에러
LookupError
IndexError : 길이가 n인데 인덱스를 n이라고 입력했을 때
SyntaxError
IndentationError : 들여쓰기 잘못됐을 때
[예외 처리; try ~ except]
- 예상하지 못한 예외가 프로그램 전체 실행에 영향이 없도록 처리함
- try ~ except 을 통해 예외처리를 할 수 있다.
n1 = 10
n2 = 0
try :
print(n1/n2)
except:
print('에러 발생')
print(n1+n2)
print(n1*n2)
[실습] 사용자로부터 숫자 5개를 입력받는다. 받을 때 숫자가 아닌 자료형이 입력된다면 예외 처리 하는 프로그램을 만들어보자.
n=6
while n > 0:
try :
int(input('input number : '))
except :
print(f'예외 처리 합니다. {n}개를 마저 입력해주세요.')
continue
n-=1
'''
input number : 10
input number : 21
input number : 숫자
예외 처리 합니다. 4개를 마저 입력해주세요.
input number : 4
input number : 문자
예외 처리 합니다. 3개를 마저 입력해주세요.
input number : 3
input number : 2
input number : 마지막하나
예외 처리 합니다. 1개를 마저 입력해주세요.
input number : 1
'''