강의지원 게시판

[프로그래밍 기초] try-except 예외처리(수정)

프-기
작성자
ASL @ KAU ASL @ KAU
작성일
2015-03-18 00:47
조회
1019

수업 중에 배우셨겠지만, 간단하게 적겠습니다.

코드를 실행시키다보면 에러가 발생하여 비정상적으로 종료되는 것을 많이 경험 해봤을 텐데

프로그램 코드 실행 중에 발생하는 에러를 예외라고 하고, 실행 도중에 에러가 발생하더라도

무시하거나 따로 처리할 수 있도록 파이썬에서는 "try except"라는 명령어를 지원해줍니다.

1.문법 (인덴트 처리는 생략)
-크게 3가지 형태로 구분을 할 수 있고

-이 문법을 기반으로 응용하여 nested하게 코드를 작성할 수도 있습니다.

1)try except
- try:

에러가 발생할 수 있는 Block

except 예외 종류:

에러 발생시 수행하는 Block

- try에서 에러가 발생하면 except 수행

- 예외 종류에는 TypeError, ZeroDivisionError 등이 존재 하는데 생략 가능하고, ","를 이용하여 두개 이상의 예외 종류를 적을 수 있다.

- 프로그램 실행 하여 에러가 빨간 글씨로 적힌 글 맨 아랫줄 왼쪽에 ~Error 가 표시되는 데, 이것이 예외 종류의 하나이다.

1-1)try except
- try:

에러가 발생할 수 있는 Block

except 예외 종류 as 변수:

에러 발생시 수행하는 Block

- 에러 발생시 에러의 메세지를 "except 예외종류 as 변수"에서 변수에 저장이 되어 print(변수) 형태로 출력하면 에러에 대한 추가적인 정보를 출력하여 볼 수 있습니다.

2)try except else
- try:

에러가 발생할 수 있는 Block

except 예외 종류:

에러 발생시 수행하는 Block

else:

에러 발생 안 할때 수행하는 Block

- try에 있는 명령어들을 에러 없이 정상적으로 수행이 끝나면 else에 있는 명령어들을 수행

3)try except finally
- try:

에러가 발생할 수 있는 Block

except 예외 종류:

에러 발생시 수행하는 Block

finally :

에러 발생 여부와 상관없이 항상 수행하는 Block

- finally는 try에서 에러가 발생하든 안하든 무조건 수행

P.S. 올린 코드를 보면 두개try를 하나의 while로 묶었는데
try하나 당 while을 써서 사용해도 상관은 없습니다.
그리고 while에서 "while type(변수) != int :" 이렇게 사용하여 입력한 타입이 같을 때까지 while을 실행하도록 코드를 작성할 수도 있습니다.