목차
- 서론
- 예외 처리란 무엇인가?
- try와 except
- 기본 구조
- 다양한 예외 처리
- 예외 메시지 출력
- finally
- 예외 처리의 중요성
- 실습 예제
- 마무리
- 추천 태그
1. 서론
프로그래밍을 하다 보면 예기치 않은 오류가 발생할 수 있습니다. 이러한 오류를 처리하지 않으면 프로그램이 비정상적으로 종료될 수 있습니다. Python에서는 이러한 예외 상황을 처리하기 위해 try
, except
, finally
구문을 제공합니다. 이번 포스팅에서는 예외 처리의 기본 개념과 사용법을 초보 개발자도 쉽게 이해할 수 있도록 설명하겠습니다.
2. 예외 처리란 무엇인가?
예외 처리란 프로그램 실행 중 발생할 수 있는 오류를 사전에 예측하고, 그에 대한 대응 방법을 미리 정의하는 것을 말합니다. 이를 통해 프로그램의 비정상적인 종료를 방지하고, 오류가 발생하더라도 안정적으로 프로그램을 종료하거나 계속 실행할 수 있도록 합니다.
3. try와 except
3.1 기본 구조
예외 처리는 try
블록과 except
블록을 사용하여 구현합니다. try
블록 안에는 예외가 발생할 수 있는 코드를 작성하고, except
블록 안에는 예외가 발생했을 때 실행할 코드를 작성합니다.
try:
# 예외가 발생할 수 있는 코드
num = int(input("숫자를 입력하세요: "))
print(f"입력한 숫자는 {num}입니다.")
except ValueError:
# 예외가 발생했을 때 실행할 코드
print("유효한 숫자가 아닙니다. 다시 시도하세요.")
위 예제에서 사용자가 숫자가 아닌 값을 입력하면 ValueError
예외가 발생하고, except
블록이 실행됩니다.
3.2 다양한 예외 처리
여러 가지 예외를 처리하려면 여러 개의 except
블록을 사용할 수 있습니다.
try:
num1 = int(input("첫 번째 숫자를 입력하세요: "))
num2 = int(input("두 번째 숫자를 입력하세요: "))
result = num1 / num2
print(f"결과는 {result}입니다.")
except ValueError:
print("유효한 숫자가 아닙니다. 다시 시도하세요.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다. 다시 시도하세요.")
이 예제에서 사용자가 잘못된 값을 입력하거나, 0으로 나누려 할 때 각각의 예외에 맞는 메시지가 출력됩니다.
3.3 예외 메시지 출력
예외 메시지를 출력하려면 except
블록에서 예외 객체를 사용하여 상세한 오류 정보를 출력할 수 있습니다.
try:
num = int(input("숫자를 입력하세요: "))
print(f"입력한 숫자는 {num}입니다.")
except ValueError as e:
print(f"오류 발생: {e}")
위 예제에서 as e
를 사용하여 예외 객체를 e
라는 변수에 할당하고, 예외 메시지를 출력합니다.
4. finally
finally
블록은 예외 발생 여부와 상관없이 항상 실행됩니다. 파일을 닫거나, 네트워크 연결을 종료하는 등 반드시 실행되어야 하는 코드를 작성할 때 유용합니다.
try:
file = open("example.txt", "r")
content = file.read()
print(content)
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
finally:
file.close()
print("파일을 닫았습니다.")
위 예제에서는 파일을 열고 읽은 후, 예외 발생 여부와 상관없이 항상 파일을 닫습니다.
5. 예외 처리의 중요성
예외 처리는 프로그램의 안정성을 높이고, 사용자에게 유용한 오류 메시지를 제공하여 문제를 해결할 수 있도록 돕습니다. 또한, 예외 처리를 통해 예상치 못한 오류로 인한 프로그램의 비정상적인 종료를 방지할 수 있습니다.
6. 실습 예제
예제 1: 나이 입력 받기
사용자에게 나이를 입력받아 성인 여부를 출력하는 프로그램을 작성해보겠습니다.
try:
age = int(input("나이를 입력하세요: "))
if age >= 18:
print("성인입니다.")
else:
print("미성년자입니다.")
except ValueError:
print("유효한 나이를 입력하세요.")
예제 2: 파일 읽기와 쓰기
파일을 읽고, 그 내용을 새로운 파일에 쓰는 프로그램을 작성해보겠습니다.
try:
with open("source.txt", "r") as src_file:
content = src_file.read()
with open("destination.txt", "w") as dest_file:
dest_file.write(content)
print("파일 복사가 완료되었습니다.")
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
except Exception as e:
print(f"알 수 없는 오류가 발생했습니다: {e}")
7. 마무리
이번 포스팅에서는 Python의 예외 처리 방법에 대해 알아보았습니다. 예외 처리는 프로그램의 안정성을 높이는 중요한 요소이므로, 다양한 상황에서 예외를 적절히 처리하는 방법을 익혀두는 것이 좋습니다. 다음 포스팅에서는 더 심화된 Python 주제를 다룰 예정입니다.
이 포스팅이 Python을 처음 접하는 분들에게 도움이 되길 바랍니다.