Python에서 다양한 유형의 예외 처리하기
동일한 코드 내에서 여러 가지 유형의 예외를 처리해야 할 필요가 있을 수 있습니다.
0으로 나누는 경우 예외를 처리해야 한다고 가정해 봅시다. 이러한 종류의 오류가 발생하면 다음과 같은 예외가 발생합니다:
ZeroDivisionError: division by zero
이를 처리하려면 예외 이름을 except 블록에 지정해야 합니다:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
또한 다음과 같은 리스트가 있다고 가정해 봅시다:
lst = [1, 2, 3]
만약 try 블록에 존재하지 않는 요소에 접근하는 코드와 같은 다른 잠재적 오류가 포함되어 있다면, except 블록에서 처리되지 않은 예외는 계속 진행되어 콘솔에 출력되고 코드 실행이 중단됩니다:
lst = [1, 2, 3]
try:
print(lst[4]) # IndexError: list index out of range 출력
except ZeroDivisionError:
print('error: do not divide by zero')
이런 상황을 해결하려면 각 블록에 해당 예외 유형의 이름을 지정해야 합니다. 코드에 존재하지 않는 요소에 대한 예외 처리를 추가해 봅시다:
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem is not exist')
다음 코드가 주어져 있습니다:
txt = '2'
res1 = txt + 3
res2 = txt1
변수 res1와 res2에 표시된 예외를 처리하는 코드를 작성하십시오.