9월 25일자 kt cloud수업 추가 공부 예외처리에 대해..

HoHk☔️🐁·2025년 9월 25일

Kt Cloud tech up

목록 보기
3/13

예외 처리

개요

  • 목적: 예외처리에 대해 다양한 경우? 들을 알아보자
  • 범위: 대체로 쓰이는 모든 예외처리와 예제
    오늘 예외처리라는것에 대해 처음 알게되어 추가로 공부해보려 한다.

🎯 목표 (Milestones)

  • M1: 예외처리에 다양한것들에 대해 학습하자 ✅ 2025-09-25

아키텍처 & 구성

  • 구성: 이론 + 예제코드

작업 목록 (Tasks)

예외처리란?

예외처리는 이러한 오류가 발생했을 때 프로그램이 비정상적으로 종료되지 않고 적절히 대응할 수 있게 한다.

try:
    # 예외가 발생할 수 있는 코드
    pass
except 예외타입:
    # 예외 발생 시 실행할 코드
    pass

1. ValueError - 잘못된 값

try:
    number = int("abc")  # 문자열을 정수로 변환 불가
except ValueError:
    print("숫자가 아닌 값을 입력했습니다.")

# 실제 사용 예제
def get_age():
    try:
        age = int(input("나이를 입력하세요: "))
        return age
    except ValueError:
        print("올바른 숫자를 입력해주세요.")
        return None

2. ZeroDivisionError - 0으로 나누기

try:
    result = 10 / 0
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

# 실용적인 예제
def divide_numbers(a, b):
    try:
        return a / b
    except ZeroDivisionError:
        print("분모가 0이 될 수 없습니다.")
        return None

3. IndexError - 인덱스 범위 초과

my_list = [1, 2, 3]
try:
    print(my_list[5])  # 존재하지 않는 인덱스
except IndexError:
    print("리스트의 범위를 벗어났습니다.")

# 안전한 리스트 접근 함수
def safe_get_item(lst, index):
    try:
        return lst[index]
    except IndexError:
        print(f"인덱스 {index}는 범위를 벗어났습니다.")
        return None

4. KeyError - 존재하지 않는 키

my_dict = {"name": "김철수", "age": 25}
try:
    print(my_dict["address"])  # 존재하지 않는 키
except KeyError:
    print("존재하지 않는 키입니다.")

# 안전한 딕셔너리 접근
def get_user_info(user_dict, key):
    try:
        return user_dict[key]
    except KeyError:
        print(f"'{key}' 정보가 없습니다.")
        return "정보 없음"

5. FileNotFoundError - 파일을 찾을 수 없음

try:
    with open("없는파일.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")

# 파일 읽기 함수
def read_file(filename):
    try:
        with open(filename, "r", encoding="utf-8") as file:
            return file.read()
    except FileNotFoundError:
        print(f"'{filename}' 파일이 존재하지 않습니다.")
        return None

Exception

모든 예외를 잡고 싶을때

try: # 뭔 일이 일어날지 모르겠는 코드 
user_input = input("숫자 입력: ") 
number = int(user_input) 
result = 100 / number 
my_list = [1, 2, 3] 
print(my_list[number]) 
except Exception as e: # 어떤 에러든 다 잡아버림 
print(f"뭔가 잘못됐어요: {e}") 
print(f"에러 타입: {type(e).__name__}") # 여기서 __name__은 에러의 정확한 이름을 알려줌

관련 리소스

  • Claude 코드

느낀점& 배운점&나아가야할점

  • 느낀점: 파이썬 정도는 깨우쳤다 생각했는데 아직 갈길이 멀다..
  • 배운점: 다양한 예외처리 상황과 그 의미등을 알수 있었다.
  • 나아가야할점: 익스플로잇 코드 짤때 파이썬으로 보통 작성 했는데 파이썬 연습도 병행 해야겠다.
profile
nyo님 좋아합니다!

0개의 댓글