PYTHON - 예외처리와 모듈 (Chapter 7-34. try except 구문)

2025. 3. 14. 11:18·Python

Chapter 7-2. try except 구문

1. try except 구문이란?

모든 예외처리 사항을 조건문으로 처리하는것은 귀찮게나 ì \xec96b거리 맞는 문제입니다.

요즘 프로그램은 대부분 예외를 처리하는 구문을 제공합니다.

2. try except의 구조

#구조
try:
	예외가 발생할 가능성이 있는 코드
except:
	예외가 발생했을 때 실행할 코드
# try except의 사예

try:
    x, y = map(int, input("벌방과 높이를 입력해주세요").split(" "))
    print(f'삼각형의 넘은 {x * y / 2}입니다.')
except:
    print("정수로 입력하지 않아 계산이 불가능합니다.")

3. try except 구문과 pass 키워드

#구조
try:
	예외가 발생할 가능성이 있는 코드
except:
	pass

4. try except 구문과 else 키워드

#구조
try:
	예외가 발생할 가능성이 있는 코드
except:
	예외가 발생했을 때 실행할 코드
else:
	예외가 발생하지 않았을 때 실행할 코드

5. try except 구문과 finally 키워드

#구조
try:
	예외가 발생할 가능성이 있는 코드
except:
	예외가 발생했을 때 실행할 코드
finally:
	무조건 실행할 코드

6. 오류의 종류와 해결 방법

1. 경문 오류 (Syntax Error)

  • 과호 기수, 들여집기 문제 등으로 프로그램이 실행되기 전에 발생.
  • 해결 방법: 문맥적 오류를 간호나 들여집기로 수정.

2. 예외 (Runtime Error)

  • 실행 중 발생.
  • 해결 방법: 경험치로 해결 후 try-except 구문 또는 조건문 가운.

7. isdigit() 함수의 설명

  • 문자열이 숫자로만 구성되어 있는지 판단.
  • 예제:
num = "1234"
print(num.isdigit())  # 출력: True

num = "1234a"
print(num.isdigit())  # 출력: False

입력값이 숫자인지 검증하고 예외를 방지.

 

예외 종류와 설명

1. 구문 오류 (Syntax Error)

  • 정의: 프로그램 실행 이전, 코드의 문법적 오류로 인해 발생하는 오류입니다.
  • 원인: 괄호 개수 불일치, 잘못된 들여쓰기, 오타 등.
  • 특징:
    • 프로그램이 실행되기 전 오류가 발생합니다.
    • 오류가 해결되지 않으면 프로그램 실행이 불가능합니다.

예시

# 올바른 코드
print("오류는 아주 사소한 것부터 발생합니다.")

# 괄호를 생략한 경우
print("오류는 아주 사소한 것부터 발생합니다."
# SyntaxError: unexpected EOF while parsing

2. 예외 (Runtime Error)

  • 정의: 프로그램 실행 중 발생하는 오류입니다.
  • 원인: 정의되지 않은 변수 참조, 0으로 나누기, 잘못된 데이터 형식 등.
  • 특징:
    • 프로그램이 실행 중일 때 오류가 발생합니다.
    • 적절히 처리하지 않으면 프로그램이 중단됩니다.

예시

# 오류 발생 코드
dogs.append("말티즈")
# NameError: name 'dogs' is not defined

# 해결된 코드
dogs = ["닥스훈트", "시바견"]
dogs.append("말티즈")
print(dogs)
# 출력: ['닥스훈트', '시바견', '말티즈']

3. 논리 오류 (Logical Error)

  • 정의: 문법적 오류는 없지만, 프로그램의 논리가 잘못되어 예상과 다른 결과를 초래하는 오류입니다.
  • 원인: 잘못된 알고리즘, 잘못된 연산 순서 등.
  • 특징:
    • 프로그램은 정상적으로 실행됩니다.
    • 결과가 의도한 바와 다르게 나옵니다.

예시

# 논리 오류 예시
x, y = 10, 0
result = x + y  # 원래는 나눗셈을 해야 하는 상황
print(f'결과는 {result}입니다.')
# 출력: 결과는 10입니다. (원래는 나눗셈 결과를 기대했음)

4. 시스템 오류 (System Error)

  • 정의: 하드웨어나 운영체제 등 시스템적인 문제로 인해 발생하는 오류입니다.
  • 원인: 메모리 부족, 디스크 공간 부족, 네트워크 장애 등.
  • 특징:
    • 프로그램 외적인 문제에서 발생합니다.
    • 대부분 시스템 설정이나 하드웨어 상태를 점검해야 합니다.

5. 예외 처리 방법

  • 조건문 사용: if, else 등을 통해 예외 발생 가능성을 미리 차단.
  • try-except 구문: 예외가 발생할 가능성이 있는 코드를 try 블록에 작성하고, 예외 발생 시 처리할 코드를 except 블록에 작성.
  • try-except-else-finally: 더 복잡한 예외 처리를 위해 else와 finally를 추가로 사용.

예시: try-except

try:
    x = int(input("숫자를 입력하세요: "))
    print(f"입력한 숫자는 {x}입니다.")
except ValueError:
    print("숫자가 아닌 값을 입력했습니다.")

6. isdigit() 함수 설명

  • 정의: 문자열이 숫자로만 이루어졌는지 판단하는 함수.
  • 반환값:
    • 문자열이 숫자로만 이루어져 있으면 True 반환.
    • 그렇지 않으면 False 반환.

예시

print("1234".isdigit())  # 출력: True
print("1234a".isdigit())  # 출력: False

활용 예시

x, y = input("밑변과 높이를 입력해주세요: ").split()
if x.isdigit() and y.isdigit():
    x, y = int(x), int(y)
    print(f'삼각형의 넓이는 {x * y / 2}입니다.')
else:
    print("정수로 입력하지 않아 계산이 불가합니다.")

이렇게 isdigit()을 활용하면 입력값이 숫자인지 쉽게 확인할 수 있습니다.

'Python' 카테고리의 다른 글

PYTHON - 예외처리와 모듈 (Chapter 7-36. raise 구문)  (0) 2025.03.14
PYTHON - 예외처리와 모듈 (Chapter 7-35. 예외 객체와 구분하기)  (0) 2025.03.14
PYTHON - 예외처리와 모듈 (Chapter 7-1. 오류 종류와 기본 예외 처리)  (0) 2025.03.14
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) 심화 문제풀이  (0) 2025.03.13
📌 Python 학습 과정 – 이해와 반복의 중요성  (0) 2025.03.13
'Python' 카테고리의 다른 글
  • PYTHON - 예외처리와 모듈 (Chapter 7-36. raise 구문)
  • PYTHON - 예외처리와 모듈 (Chapter 7-35. 예외 객체와 구분하기)
  • PYTHON - 예외처리와 모듈 (Chapter 7-1. 오류 종류와 기본 예외 처리)
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) 심화 문제풀이
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (502) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (9)
      • 특강 (18)
      • 기술블로그 (143)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (44) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
PYTHON - 예외처리와 모듈 (Chapter 7-34. try except 구문)
상단으로

티스토리툴바