파이썬 try 구문
• bamjun
에러 처리를 위한 try
구문은 Python에서 매우 중요합니다. try
구문을 사용하여 예외(에러)가 발생할 가능성이 있는 코드 블록을 정의하고, 이후에 발생할 수 있는 예외를 처리합니다.
try
구문의 기본 구조는 다음과 같습니다:
try:
# 예외가 발생할 가능성이 있는 코드
except 예외타입:
# 예외가 발생했을 때 실행할 코드
예외 처리를 위한 전체 구조는 다음과 같이 확장될 수 있습니다:
try
: 예외가 발생할 수 있는 코드를 실행하는 블록입니다.except
:try
블록에서 예외가 발생했을 때 실행되는 블록입니다. 특정 예외 타입을 지정하거나 여러 예외를 처리할 수 있습니다.else
:try
블록에서 예외가 발생하지 않았을 때 실행되는 블록입니다.finally
: 예외 발생 여부와 관계없이 항상 실행되는 블록입니다. 주로 자원을 정리하거나 해제하는 데 사용됩니다.
다음은 try
구문의 사용 예입니다:
try:
result = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
finally:
print("연산 시도가 끝났습니다.")
이 코드는 0으로 나누는 연산을 시도하고, 이로 인해 발생하는 ZeroDivisionError
를 처리합니다. finally
블록은 예외 발생 여부에 상관없이 항상 실행됩니다.
Python에서 자주 사용되는 예외 타입들은 다음과 같습니다:
Exception
: 모든 내장, 비시스템 종료 예외 클래스의 기본 클래스입니다.ArithmeticError
: 수치 연산 에러의 베이스 클래스입니다.OverflowError
,ZeroDivisionError
,FloatingPointError
가 여기에 속합니다.BufferError
: 버퍼 관련 연산이 실패했을 때 발생합니다.LookupError
: 매핑 또는 시퀀스에서 사용될 때 발생하는 에러의 베이스 클래스입니다.IndexError
와KeyError
가 여기에 속합니다.IndexError
: 시퀀스 인덱스가 범위를 벗어났을 때 발생합니다.KeyError
: 매핑(딕셔너리)에서 존재하지 않는 키를 참조할 때 발생합니다.MemoryError
: 메모리 할당 에러가 발생했을 때 나타납니다. 이는 시스템의 메모리가 부족할 때 발생합니다.NameError
: 로컬 또는 전역 이름을 찾을 수 없을 때 발생합니다.OSError
: 시스템 관련 에러 때 발생합니다.FileNotFoundError
,InterruptedError
,PermissionError
등이 여기에 속합니다.SyntaxError
: 구문 오류가 발생했을 때 나타납니다.TypeError
: 연산이나 함수가 부적절한 타입의 객체에 적용되었을 때 발생합니다.ValueError
: 연산이나 함수가 올바른 타입이지만 부적절한 값을 가진 객체에 적용되었을 때 발생합니다.ZeroDivisionError
: 나눗셈이나 모듈 연산의 두 번째 인자가 0일 때 발생합니다.
이들은 Python의 표준 예외 타입들 중 일부에 불과하며, 다양한 내장 예외 타입들이 더 있습니다. 또한 사용자가 필요에 따라 자신만의 예외 타입을 정의하여 사용할 수도 있습니다.
Share on: