#try except 구문으로 예외 처리하기
try:
number_input_a = int((input("정수 입력 :")))
print("원의 반지름 :", number_input_a)
print("원의 둘레 :", 2*3.14*number_input_a)
print("원의 넓이 :", 3.14*number_input_a*number_input_a)
except:
print("정수를 입력하지 않았습니다.")
else:
print("예외가 발생하지 않았습니다.")
finally:
print("일단 프로그램이 어떻게든 끝났습니다.")
1. 내가 입력한 값 : 3일때
정상 try 구문 진행되며 예외 except 건너뛰고 종료된다.
2. 내가 입력한 값 : zz일때
예외값 except로 넘어가 프로그램 종료된다.
두가지 경우 모두 finally 구문이 실행되는 모습을 볼 수 있다.
finally 구문은 예외 처리 구문에서 가장 마지막에 사용할 수 있는 구문이다. 예외가 발생하든 발생하지 않든 무조건 실행할 때 사용하는 코드이다. 정리하면
- try : 예외가 발생할 가능성이 있는 코드
- except : 예외가 발생했을 때 실행할 코드
- else : 예외가 발생하지 않았을 때 실행할 코드
- finally : 무조건 실행할 코드
조합해보면 아래와 같다. 이 외에 조합은 실행 시 구문 오류 발생한다.
- try + except
- try + except + else
- try + except + finally
- try + except + else + finally
- try + finally
#try except 구문으로 파일 열고 닫기
try:
file = open('hi.txt', 'w')
file.write('안녕!')
except:
print('오류 발생')
file.close()
print('#파일이 제대로 닫혔는지 확인하세요')
print('file.closed:', file.closed)
마지막에 finally 안쓰고도 try +except 구문만 해도 아무 문제 없다.
finally 구문은 반복문 또는 함수 내부에 있을 때 위력을 발휘한다. 🌟
def test():
print('test() 함수의 첫 줄')
try:
print('try 구문 시작')
return
print('try 구문의 return 키워드 뒤')
except:
print('except 구문 실행됨')
finally:
print('finally 구문 실행됨')
print('test() 함수의 마지막 줄')
test()
👩🏻💻 try 구문 내부에 return 키워드 있는게 포인트. try 구문 중간에서 탈출해도 finally 구문은 무조건 실행된다. 따라서 함수 내부에서 파일 처리 코드를 깔끔하게 만들고 싶을 때 finally 구문을 활용하는 경우가 많다. try구문에서 원할 때 return키워드로 빠져나가도 파일이 무조건 닫히기 때문 !
def write_text_file(filename, text):
try:
file = open(filename, 'w')
file.write(text)
except:
print('오류가 발생했습니다.')
finally:
file.close()
write_text_file('TEST.txt','확인하세요')
finally 구문에서 close()함수를 호출하도록 코드 작성하면 깔끔해짐.
print('프로그램 시작됨')
while True:
try:
print('try구문 시작됨')
break
print('try구문의 break 키워드 뒤')
except:
print('except구문이 실행됨')
finally:
print('finally 구문이 실행됨')
print('while반복문의 마지막 줄')
print('프로그램 종료')
break 키워드로 try 구문 전체를 빠져나가도 ! finally 구문이 실행되는 것을 볼 수 있다 🌟
break안넣으면 while문 못 빠져나가니 참고 ㅎㅎ
'Python' 카테고리의 다른 글
🖐🏻한마디 대화 프로그램 (0) | 2023.10.21 |
---|---|
🕳️⚫⚪원넓이, 원둘레, 구의부피, 구의넓이 구하는 간단 프로그램 (0) | 2023.10.21 |
문자열 서식 지정자와 포매팅 사용하기 (0) | 2023.09.19 |
전화번호(연락처) 프로그램 코딩 (0) | 2023.09.17 |
Python 함수 예제 풀이 (0) | 2023.09.16 |