본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Playdata_study/Python

210506_예외처리

by 케리's 2021. 5. 6.

pickle 복습

 

 

 

 

* 예외처리를 할 수 있다.
* 모듈을 사용해서 활용해보자.

  Error의 개념 이해,  try ~ except, traceback.py, sys.py
  Exception을 상속받아 사용자 예외처리를 구현


ex) 
  자동차회사
  1. 부서장 회의: 결정(3000,5000,12/24), 추가 논의 → 추상화
  2. 각 부서장들은 1번을 가지고 각 부사에 가서 논의 : 결정, 추가논의  추상화
  3. 각 부사에서 논의된 사항을 가지고 업무를 수행한다. (완성본) 클래스, 객체 생성

  4. 경쟁사에서 12/24 날 자동차 출하/그럴 줄/ 알았다. 2000만 원대 / Exception
  5. 부도/회복 불가능//Error

 

 


Exception(예외 클래스)

 특정 Error에 대응하는 방법을 클래스로 pvm 제공한다.
 Error 중에서도 개발자가 프로그램 실행 시 중단의 경우를 대처할 수 있는 클래스이다.

 

  ex) oa 프로그램에서 갑자기 deadlock 이 걸려 병목현상이 발생될 경우. bak.bak 파일에 작업내용을 자동 저장
  ex) ZeroDivisionError : 예외 클래스

 

 

 

예외처리 

  예외를 방치하거나 Error로 인한 프로그램 수행 결과가 잘못 동작을 하는 것이 아니라 Error를 잡고 처리하는 방법을      제공하는 것을 말한다.

 

# except

 

 

# import traceback

 

 

Error

  Error : syntax Error, semantic Error


  syntax Error (구문 오류) 

   : 파싱 오류(parsing(parsing error)라고도 하며 프로그램 문법에 맞지 않으면 발생하는 오류이다.
    구문 오류가 발생하면 오류 메시지가 표시되며 오류를 발견한 지점은 줄번호와 위치 표시로 정확하게 알 수 있다.


  semantic Error

   : 프로그램 수행 중에 발생할 수 있는 Error로 사전에 프로그래머가 예상해서 처리할 수 있는 가벼운 Error를 말한다.         semantic Error = Exception이라고 부른다.

  Exception Handling : 예외가 발생한 곳에서 예외를 직접 처리한다.


       try ~ except, try~ else, try ~ finally, try ~ else ~ finally

 


[형식]


try :
     <code block>
      예외 발생 시 실행되는 코드


except 예외 종류, 예외 변수:
         예외 발생 시 실행되는 문구
else:
       예외가 발생되지 않았을 때 실행되는 코드
finally:
        예외 발생 유무에 상관하지 않고 꼭 실행되는 코드

 


사용자 Exception 

 

 : Exception class를 상속받아서 재정의, 정의, 구현 등을 사용해서 클래스를 선언한다.
   상속을 받아 구현한 사용자 정의 Exception 클래스는 raise 키워드를 사용해서 에러를 강제로 발생을 시킨다..

[형식]


  raise 예외 클래스

 


모듈을 import 하는 방법


  1. import 모듈명 : 일단 해당 모듈이 이미 로딩된 상태인지 확인하고 없으면 모듈명. py를.py 탐색한다.
  2. from 모듈명 import 컴포넌트, 컴포넌트 : 지정된 컴포넌트들을 현재의 네임스페이스로 로딩
  3. import 모듈명 as 별칭 또는 "from 모듈명 import 컴포넌트 as 별칭"
     : 네임스페이스 충돌을 방지하거나 긴 이름 등에 대처하는 별칭을 지정할 때 사용


    ★ 중요 모듈: os-탐색기, sys-파이썬 실행, datetime, time (날짜 관련 모듈), (Decimal) 수학 모듈

 

Decimal

 

  : 진법 변환 에러에 대해 정확한 값을 얻을 수 있도록 제공되는 모듈


- 부동소수점 방식 : 소수점의 위치를 고정하지 않고 그 위치를 찾아내는 수를 따로 적는 방식
- 유효숫자를 나타내는 가수(mantissa)와(mantissa) 소수점 위치를 풀이하는 지수(exponent)를 나누어서 표현
   [가수] * [밑수]

   >>> 1/3
         0.3333333333


- 실제 컴퓨터에서는 보통 이진법을 이용하며 값을 먼저 이진수로 변환 후 정규화하고 그것을 다시 정형화된 형식으로 표현한다.
- 표현식이 끝나면 결괏값이 오버플로 되어 무한대 값이 되거나 언더 플로 되었을 때 비정상적인 값 또는 0이 될 수 있다.
만약 비정상적인 값이 되면 유효숫자를 읽어 버리게 된다.
   >>> (90.7 + 30.2) + 0.0002


 특징 

 

  소수점 자리의 정밀도 조절할 수 있다.
  큰 정밀도 연산도 사용할 수 있다.
  실수를 정확하게 표현할 수 있다.

 

'|Playdata_study > Python' 카테고리의 다른 글

210510_Json 구현 및 웹 서비스  (0) 2021.05.10
210507_모듈 활용 및 csv  (0) 2021.05.07
210504_객체 단위 파일 입/출력  (0) 2021.05.05
210503_OS모듈  (0) 2021.05.03
210429_클래스4  (0) 2021.04.30

댓글