I'm Electronic Engineer :)

[Do it] 점프 투 파이썬 - 07일차 본문

Study code & programming/Python

[Do it] 점프 투 파이썬 - 07일차

Lu175 2019. 8. 8. 00:26

 

 

 

07일차.pdf
0.28MB

 

 

 

1. 기본 내용

 

 

공부 날짜: 201987()

 

 

 

2. 스터디 내용

 

 

공부 범위:

 

1장 파이썬이란 무엇인가?

2장 파이썬 프로그래밍의 기초, 자료형

3장 프로그램의 구조를 쌓는다! 제어문

4장 프로그램의 입력과 출력은 어떻게 해야 할까?

5장 파이썬 날개 달기

6장 파이썬 프로그래밍, 어떻게 시작해야 할까?

7장 정규 표현식

 

 

공부 내용:

 

5-4     예외 처리

 

--- 오류는 프로그램의 잘못된 동작을 막기위한 python의 배려이다.

 

--- 오류 예외 처리 기법 ( try, except)

 

           try 블록 수행 중 오류가 발생하면 except블록이 수행된다.

           (try 블록에서 오류가 발생하지 않는다면 except블록은 수행되지 않는다.)

 

           try, except문의 형태는 위와 같으며,

           [ ] 기호는 괄호안의 내용을 생략할 수 있다는 관례 표기법이다.

 

           1. try, except만 사용    -> 모든 오류가 except 블록 수행

 

           2. 발생 오류만 포함한 except   -> ‘발생 오류except블록 수행


           3. 오류 메시지 변수까지 포함한 except    -> 오류 메시지의 내용도 출력


--- 나 혼자 코딩! (p224)

 

--- 오류 예외 처리 기법 ( try … finally )

 

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

 

           finally절에 열린 파일을 닫는 close()함수를 두면 좋다.

 

--- 여러 개의 오류 처리하기


           try, except문에서 except블록을 여러 개 작성함으로 오류들에 대한 대처를 할 수 있다.

 

           위와 같이 괄호를 묶어서 함께 2개 이상의 오류도 처리 가능하다.

 

--- 오류 회피하기 (pass 사용)

 

--- 오류 일부러 발생시키기 (raise 사용)

 

           NotImplementedErrorPython 내장 오류로,

           꼭 작성해야 하는 부분이 구현되지 않았을 때 일부러 오류를 내는 용도이다.

 

           위의 코드는 Bird 클래스를 상속받는 클래스들은

           fly() 함수를 구현해야 한다는 생각으로 작성된 코드이다.

 

           Eagle 클래스는 Bird 클래스를 상속받았으나

           fly() 함수를 구현하지 않았기 때문에 Error가 발생한다.

 

           (메서드 오버라이딩: 상속받은 클래스에서 함수를 재구현 하는 것)

 

--- 예외 만들기

 

           직접 예외를 만들 때는 Python의 내장 클래스인 Exception을 상속받으면 된다.

 

           try, except문을 사용하면 아래와 같이 작성 할 수 있다.

 

--- __str__ 메서드

 

           직접 예외를 만들었을 때 [ except 발생 오류 as 오류 메시지 변수 ]를 사용하고

           print(오류 메시지 변수)를 수행하면 오류메시지가 출력되지 않는다.

 

           오류 메시지를 print()함수로 출력할 경우에 __str__메서드가 호출되기 때문이다.

 

 

 

3. 스터디 후기

 

 

스터디 도중 발생한 문제, 어려웠던 점을 어떻게 해결했는지?

X

 

 

간단한 소감

예외 처리에 대해서 배웠다.

다음에 배울 내장함수가 기대된다.

 

 

다음 스터디 예정일

201989()