1 분 소요

  • 예외처리

    프로그램 실행 중에 예기치 않은 상황 또는 오류가 발생할 때, 그 상황을 처리하고 중단되지 않도록 하는 프로그래밍 기술이다. 예를 들면 파일을 열려고 할 때 파일이 없거나, 나누기 연산에서 0으로 나누려고 할 때 등과 같은 상황에서 예외가 발생한다..

    • 예외의 발생

      result = 10 / 0
      
    • 예외 처리의 필요성

      예외는 발생할 가능성이 항상 있기 때문에, 예외처리가 필요하다. 그렇지 않으면 프로그램이 강제종료 된다.

    • 예외 처리의 구문

      파이썬에서 예외처리는 try, except, else, finally 등의 예약어를 사용하여 구현된다.

      • try : 예외가 발생할 가능성이 있는 코드블록을 감싼다.
      • except : 예외가 발생했을 때 처리할 코드 블록을 정의한다. 특정 예외타입을 명시할 수도 있다.
      • else : 예외가 발생하지 않았을 때 실행할 코드블록을 정의한다.
      • finally : 예외발생 여부와 상관없이 항상 실행할 코드 블록을 정의한다.
    try :
        result = 10 / 0
    except ZeroDivisionError as e :
        print("분모 0 예외 발생 : ", e)
    else :
        print("실행 완료")
    finally :
        print("항상 실행")
    
  • 예외종류(파이썬)

    파이썬에 내장된 예외의 종류는 매우 많지만 대표적인 몇가지만 살펴보겠다.

    • ZeroDivisonError : 분모가 0일 때 발생하는 에러

      result = 10 / 0
      
    • TypeError : 연산이나 함수가 부적절한 타입의 객체에 적용됐을 때 발생하는 에러

      text = "Hello"
      number = 10
      result = text + number
      
    • NameError : 지역변수, 전역변수의 이름이 발견되지 않았을 때 발생하는 에러

      print(variable_not_defined)
      
    • ValueError : 함수가 인자로 부적절한 값을 전달받았을 때 발생하는 에러

      int("abc")
      
    • IndexError : 인덱스의 범위가 벗어났을 때 발생하는 에러

      my_list = [1, 2, 3]
      value = my_list[5]
      
    • KeyError : 딕셔너리에서 존재하지 않는 키값으로 접근할 때 발생하는 에러

      my_dict = {"name" : "John", "age" : 30}
      value = my_dict["city"]
      
    • FileNotFoundError : 파일을 여는데 실패했을 때 발생하는 에러

      with open("non_existent_file.txt", "r") as file :
          data = file.read()
      
    • ImportError : 모듈을 찾는데 실패했을 때 발생하는 에러

      import non_existent_module
      
    • AttributeError : 속성 참조나 할당에 실패했을 때 발생하는 에러

      text = "hello"
      text.reverse() # reverse는 list타입에서 제공하는 메소드이고, 문자열은 reversed 메소드를 이용해야 한다.
      
    • SyntaxError : 코드에서 문법이 틀렸을 때 발생하는 에러

      if x > 5 # 세미콜론 없음
      

댓글남기기