18주차. 구문 오류와 예외

09Roalwlzm01·2023년 11월 9일
0

Python

목록 보기
28/36

오류의 종류

구문 오류 (syntax error)

  • 프로그램 실행 전에 발생하는 오류
  • 괄호의 개수, 들여쓰기 등 프로그래밍 문법을 지키지 않은 경우에 주로 발생
  • SyntaxError 메시지 출력
  • 구문 오류는 해결하지 않으면 프로그램이 실행되지 않기 때문에 코드를 수정해야 함

예외

  • 런타임 오류
  • 프로그램 실행 중에 발생하는 오류
  • 프로그램이 실행된 다음 실행 중에 발생하며, 비정상적으로 프로그램이 종료
  • 구문 오류와 같이 코드를 수정하거나, 예외처리 등을 사용해 문제 해결

예외가 발생할 수 있는 코드

  • 정수를 입력하지 않으면? -> ValueError 발생

예외 처리

  • 예외를 해결하는 모든 방법
    • 조건문을 사용한 기본 예외 처리
      • try except 구문을 사용한 예외 처리
  • 구문 오류는 실행조차 되지 않기 때문에 예외처리를 할 수 없음

기본 예외 처리

  • 조건문을 사용한 예외 처리 방법
    - 문자열 객체의 isdigit() 메서드를 사용해 숫자로만 구성된 글자인지를 확인
  • 예외가 발생하는 상황이나 조건을 고려하여 프로그램을 작성하는 습관이 필요

try except 구문

  • 예외가 발생할 상황을 예측하여 모두 조건문으로 처리하는 일은 매우 어렵고, 프로그래밍 언어의 구조적인 문제로 조건문만으로 예외를 처리할 수 없는 경우도 있음
  • try except 기본 구조
  • try except 구문을 사용하면 어떤 상황에 예외가 발생하는지 완벽하게 이해하고 있지 않아도 프로그램이 강제로 종료되는 상황을 방지할 수 있음

pass 키워드

  • 프로그램 흐름 상 중요한 코드가 아니라 예외가 발생할 떄 일단 처리할 목적으로 사용
  • try except 구문과 pass 키워드 조합하기


try except else 구문

  • 예외가 발생하지 않았을 때 실행할 코드를 지정할 때 사용
  • 기본 구조
  • 예외가 발생할 가능성이 있는 코드만 try 구문 내부에 넣고 나머지는 모두 else 구문 내부에서 처리
    - Python, Ruby 등의 언어에서만 지원하는 기능

finally 구문

  • 예외 발생 여부와 관계없이 무조건 실행할 코드를 지정
  • try + except + esle + finally


  • close() 메서드 : 파일 입출력 스트림 닫기
try:
    file = open('info.txt', 'r')
    int('abc')
    file.close()
except Exception as e:
    print(e)
invalid literal for int() with base 10: 'abc'

try:
    file = open('info.txt', 'r')
    int('abc')
    file.close()
except Exception as e:
    print(e)
print('file.closed:', file closed)
file.closed: True




예외 처리 구문 작성 규칙

  • try는 단독으로 사용할 수 없으며, 반드시 except 또는 finally와 함께 사용해야 함
  • else는 반드시 except 뒤에 작성해야 함

try, except, else, finally 조합

  • try + except 구문
  • try + except + else 구문
  • try + except + finally 구문
  • try + except + else + finally 구문
  • try + finally 구문

0개의 댓글