문준영
새벽 코딩
문준영
전체 방문자
오늘
어제
  • 분류 전체보기
    • 웹 개발
    • JAVA
      • 기본 문법 내용 정리
      • 함수 내용 정리
      • 쉽게 배우는 자바 프로그래밍 문제 풀이
    • HTML
      • HTML
      • CSS
      • 문제풀이
    • JavaScript
    • MYSQL
    • C
      • 기본 문법 내용 정리
      • 백준 알고리즘 (c언어)
      • 자료구조
    • Python
      • 참고 알고리즘
      • 기본 문법 내용 정리
      • 자료구조 내용 정리
      • 백준 알고리즘 (파이썬)
    • 깃허브
    • 멀티잇 풀스택

티스토리

hELLO · Designed By 정상우.
문준영

새벽 코딩

Python/기본 문법 내용 정리

예외처리

2022. 1. 28. 16:14

 

예외 처리

 

-특징

  • 오류 회피하기 - pass
  • 외부 데이터를 가져올 때는 예외처리를 해줘야 한다.

 

- 버그

 1. 버그 찾기 (어떤 상황에서 얼마나 잦은 빈도로 어떻게 발생하는가에 대해서 분석)

 2. 버그 해결 

 3. 버그 재발 방지 

 

 

1. try - except 문  (오류 예외 처리)

 

1.1 기본 구조 

  try:  ....
  except  : .....

 

1.2 발생 오류만 포함

 try: .....
 except 발생 오류:

 

1.3 발생 오류와 메세지 변수를 포함

   try: .....
   except 발생 오류 as 오류 메세지 변수 :

복수 에러 처리 -> except (발생오류1, 발생오류2, ... ) as 오류 메세지 변수 : 

4를 0으로 나누면 -> ZeroDivisionError가 발생  
ex) try : 4/0
    except ZeroDivisionError as e: print(e)

 

2. try-finally 문  (오류 예외 처리)

 

finally절은 try문 수행 도중 예외 발생 여부에 상관없이 항상 수행된다.

  보통 finally는 사용한 리소스를 close 할 때 사용한다.

 

try: ....
finally: ....

 

3. 오류 일부러 발생시키기 (rasie)

 

3.1 반드시 꼭 구현하도록 하고 싶은 경우

def sum(self):
    rasie  NotplementdError 
-> 반드시 함수를 구현하도록 설정 

NotplementdError  -> 꼭 작성해야하는 부분이 구현되지 않았을 경우 일부러 오류 발생하기 위해 사용

 

3.2 예외 만들기

 

3.2.1 예외처리할 클래스로 예외 만들기

class 이름(Exception):
    pass 
로 예외처리할 클래스 생성 
def sum(name):
  if 조건식:
     raise class이름()

-> 해당 조건식에 해당하면 class 이름의 오류가 발생한다.
-> 오류 예외 처리로 해결
try:
 sum(name)
except class이름:
    print( '에러 발생')

 

3.2.2 Exception 안에 예외 저장하기

try : ....
    if 조건식 :
       raise Exception('예외 발생 1')
except Exception as 변수 :
    print('예외발생 2', e)

-> Exception의 에러메세지는 변수에 들어갔음
-> 만약 조건식에 해당 될 때 결과 값 : 예외 발생2 예외 발생 1 

 

 

traceback

 

  • 파이썬의 코드 실행 경로를 담고 있는 패키지 
  • 예외처리시 에러가 어디서 났는지에 대해 자세히 알 수 있게 해줌
import traceback

trt:
 ....

except:
traceback.print_exc()

 

 

에러 코드 읽기

 

 

  • Traceback : 에러 경로를 알려주겠다. (경로는 밑에서 위로) *결정적인 부분은 맨 아래
  • Syntax error (신텍스 에러 )  : 잘못된 문법
  • zero division error : 0으로 나누기를 하였을 때
  • import error : import 이름이 잘못 되었을 때
  • Recursion error : 재귀 오류 (무한 루프)

'Python > 기본 문법 내용 정리' 카테고리의 다른 글

데이터 분석  (0) 2022.06.23
+ 스태틱/인스턴스 함수와 메서드와 매직 메서드  (0) 2022.01.28
클래스  (0) 2021.07.15
함수와 파일 입출력  (0) 2021.07.14
제어문  (0) 2021.07.13
    'Python/기본 문법 내용 정리' 카테고리의 다른 글
    • 데이터 분석
    • + 스태틱/인스턴스 함수와 메서드와 매직 메서드
    • 클래스
    • 함수와 파일 입출력
    문준영
    문준영
    공부한 내용 정리!

    티스토리툴바