We are Architect

20. 점프 투 파이썬 (예외 처리) 본문

Programing/Python

20. 점프 투 파이썬 (예외 처리)

the best infra 2024. 11. 15. 02:55

 

* 예외 처리란?

- 코드를 작성하고 나서 실행하면 프로그램에서 오류를 보여주는데 이때 프로그램이 중단이 된다. 이러한 중단 사태를 막고자 오류 예외 처리 기법을 사용한다. 

 

 

* try-except문

- 오류를 처리하는 구문이다.

try: 
	...
except [발생_오류 [as 오류_변수]]:
	...

 

- try 블록 수행 중 오류가 발생하면 except 블록이 수행된다. 하지만 try블록에서 오류가 발생하지 않는다면 except 블록은 수행되지 않는다. 

except [발생_오류 [as 오류_변수]]:

 

- try-except만 쓰는 방법

  - 이 경우에는 오류의 종류 상관없이 오류발생시 except 블록 수행.

try:
	...
except:
	...

 

- 발생 오류만 포함한 except문

  - 이 경우는 오류가 발생했을 때 except 문에 미리 정해 놓은 오류와 동일한 오류일 경우에만 except 블록을 수행.

try:
	...
except 발생_오류
	...

 

- 예시) 

  - 오류 변수 e에 담기는 오류 메세제를 출력할 수 있다. 

 

 

* try-finally 문

- try문에는 family 절을 사용할 수 있으며 finally 절은 try 문 수행 도중 예외 발생 여부에 상관 없이 항상 수행된다. 

- 이렇게 되면 해당 파일을 열다가 예외 발생 여부에 상관없이 파일을 듣고 싶으면 try-finally문을 사용하면 된다. 

 

 

* 여러 개의 오류 처리하기 

- try 문 안에서 여러개의 오류처리시

try:
	...
except 발생_오류1:
	...
except 발생_오류2:
	...

인덱싱 오류가 먼저 발생하여 ZeroDivisionError 오류가 발생하지 않았다.

 

 

* try-else문

- try문에는 다음처럼 else절을 사용할 수도 있다. 

 

 

* 오류 회피하기

- 코드를 작성하다 보면 특정 오류가 발생할 경우그냥 통과시켜야 할 때가 있다. 

try:
	f = open("없는 파일", 'r')
except FileNotFoundError: # 파일이 없어도 오류없이 통과
	pass

 

 

* 일부러 오류 발생시키기

- raise 라는 명령어를 통해 일부러 오류를 발생 시킬수 있다. 

 

 

* 예외 만들기

- 프로그램을 수행하다가 특수한 경우에만 예외처리를 하고  종종 예외를 만들기도 한다. 

- 예외가 발생 했을때 __str__ 메서드는 문자열로 변환되는 방식을 정의

class MyError(Exception):
	def __str__(self):
		return "허용되지 않는 별명입니다."