9/9 예외처리
-
예외처리
프로그램 실행 중에 예기치 않은 상황 또는 오류가 발생할 때, 그 상황을 처리하고 중단되지 않도록 하는 프로그래밍 기술이다. 예를 들면 파일을 열려고 할 때 파일이 없거나, 나누기 연산에서 0으로 나누려고 할 때 등과 같은 상황에서 예외가 발생한다..
-
예외의 발생
result = 10 / 0
-
예외 처리의 필요성
예외는 발생할 가능성이 항상 있기 때문에, 예외처리가 필요하다. 그렇지 않으면 프로그램이 강제종료 된다.
-
예외 처리의 구문
파이썬에서 예외처리는 try, except, else, finally 등의 예약어를 사용하여 구현된다.
- try : 예외가 발생할 가능성이 있는 코드블록을 감싼다.
- except : 예외가 발생했을 때 처리할 코드 블록을 정의한다. 특정 예외타입을 명시할 수도 있다.
- else : 예외가 발생하지 않았을 때 실행할 코드블록을 정의한다.
- finally : 예외발생 여부와 상관없이 항상 실행할 코드 블록을 정의한다.
try : result = 10 / 0 except ZeroDivisionError as e : print("분모 0 예외 발생 : ", e) else : print("실행 완료") finally : print("항상 실행")
-
-
예외종류(파이썬)
파이썬에 내장된 예외의 종류는 매우 많지만 대표적인 몇가지만 살펴보겠다.
-
ZeroDivisonError : 분모가 0일 때 발생하는 에러
result = 10 / 0
-
TypeError : 연산이나 함수가 부적절한 타입의 객체에 적용됐을 때 발생하는 에러
text = "Hello" number = 10 result = text + number
-
NameError : 지역변수, 전역변수의 이름이 발견되지 않았을 때 발생하는 에러
print(variable_not_defined)
-
ValueError : 함수가 인자로 부적절한 값을 전달받았을 때 발생하는 에러
int("abc")
-
IndexError : 인덱스의 범위가 벗어났을 때 발생하는 에러
my_list = [1, 2, 3] value = my_list[5]
-
KeyError : 딕셔너리에서 존재하지 않는 키값으로 접근할 때 발생하는 에러
my_dict = {"name" : "John", "age" : 30} value = my_dict["city"]
-
FileNotFoundError : 파일을 여는데 실패했을 때 발생하는 에러
with open("non_existent_file.txt", "r") as file : data = file.read()
-
ImportError : 모듈을 찾는데 실패했을 때 발생하는 에러
import non_existent_module
-
AttributeError : 속성 참조나 할당에 실패했을 때 발생하는 에러
text = "hello" text.reverse() # reverse는 list타입에서 제공하는 메소드이고, 문자열은 reversed 메소드를 이용해야 한다.
-
SyntaxError : 코드에서 문법이 틀렸을 때 발생하는 에러
if x > 5 # 세미콜론 없음
-
댓글남기기