본문 바로가기
FastCampus/작심 30일

패스트캠퍼스 챌린지 30일차

by Dream_World 2021. 10. 5.

예외처리

드디어 이 챌린지를 작성하면서 30일차로 접어들었다. 1일 1학습 1블로그를 기록했다는 의미이다. 때론 포기하고 싶을 때도 있었다. 특히, 주말이나 공휴일 일정들을 소화하며 컴퓨터 켜는 부분은 쉬운 일이 아니였다. 끈덕지게 붙어서 학습하였고 기록하였다. 결과과 좋지 못할지 모르지만 30일까지 해내었다는 '나' 자신을 칭찬해주고 싶다. 비록 시작이 반이라고 아직 스타트 지점이 아닐지도 모른다는 것이다. 내가 앞으로 해야 하는 것은 꾸준히 학습해서 내가 공부하고자 했던 목표를 기억해야 하며 알아야 할 것이다. 학습의도와 내가 작성하고자 하는 방향은 다를지 모른다. 내가 기억해야 하는 요소를 어떻게 표현해서 기록하며 또 떠오르게 할 지 많이 연구해야 하는 부분이다. 아직은 서투른 나의 30대의 공부 순간일 것이다. 후에는 공부가 숙달되어 적응되길 바랄 뿐이다. 어렸을 적 이렇게 공부해본적이 없었기에 '나'는 아직도 어린아이와 같은 학습 방향이 있음을 알리고 싶을 뿐이다. 나에게 많은 사람들이 조언해온다. 그런 조언들이 아직도 나에게는 긍정적으로 받아들이는 능력이 없다는 것이다. 많이 부족하다. '나'도 잘하고 싶을 뿐이다. 개발자를 존경하며 회사에 일하는 모든 이들을 존경한다. 내가 그렇지 못하였기 때문이 아닌 내가 공부를 해봤기에 그들의 고충을 알 수 있다는 점이다. 오늘의 학습해야 하는 예외처리가 중요함을 알 수 있다. 이 코드로 인해 에러를 발생할 것인지 넘길 것인지 사전 정리가 됨을 알린다.

 


에러와 예외처리

예외처리가 필요한 이유

- 프로그램 실행 중에 발생하는 에러를 미연에 방지

 

try-except 구문

try:
    예외가 발생할 수 있는 코드
except:
    예외 발생 시 실행할 코드

 

else, finally

else:
    예외 발생하지 않은 경우 실행할 코드
finally:
    항상 실행할 코드

 


예외만들기

raise 구문 사용법

raise 예외("에러 메세지")

 

예외 계층 구조

출처 : Python 공식 문서

except ZeroDivisionError: # 하나만 받아서 처리 가능

- 나누기 또는 모듈로 연산의 두 번째 인자가 0일 때 발생

- 연관된 값은 피연산자의 형과 연산을 나타내는 문자열

 

except ArithmeticError: # 3개 모두 다 받아서 처리 가능

- 다양한 산술 에러가 일으키는 내장 예외들의 베이스 클래스

- FloatingPointError, OverflowError, ZeroDivisionError

 

except Exception: # 모든 내장 예외 처리 가능

- 모든 시스템 종료 외의 내장 예외는 이 클래스 파생

- 모든 사용자 정의 예외도 이 클래스에서 파생되어야 합니다.

 

에러 만들기

class 예외(Exception):
    def__init__(self):
        super().__init__("에러 메세지")

 

오늘은 에러와 예외처리 및 예외만들기에 대해 학습 해보는 시간을 가졌다. 사용자들의 에러를 발생 시켰을 때 서버에서는 제대로 전달해줘야 하기에 필수 코드라고 할 수 있다. 에러 구문도 없이 넘겨버린다면 사용자는 틀렸는지 전혀 모르는 상태가 되어버려 무작정 진행이 되면서 클릭을 해도 반응이 없다면 당황을 할 것이다. 이토록 예외처리를 해야 하는 상황은 현 시대에는 많이 적용됨을 볼 수 있다. 예제 강의도 있듯이 음수를 입력 받아야 하는 경우에 양수를 입력해도 무사히 통과된다면 이 코드는 잘못된 코드가 될 수 있다는 얘기이다. java와 javascript를 배운 학습자들을 보면 try-catch-finally를 생각하면 될 것이다. 강사분이 강의 하면서도 헷갈리셨는지 except 를 catch로 읽고 실수를 정정하셨던 헤프닝이 있었다. 사용 방법만 조금씩 다를 뿐이지 아예 다르지 않다는 것을 python을 통해서 배울 수 있는 것이다. 왜 개발자는 한가지 언어를 열심히 공부하고 깊게 파서 다른 언어를 쉽게 적용하는지 알 수 있는 대목이기도 하였다. javascript 예외처리를 자주 사용했던 적이 있어서 이번 강의는 학습에 부담이 전혀 없었기에 좋았던 부분이다.

30일차는 여기서 마무리 하고자 합니다.

 



본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.



패스트캠퍼스 링크 : https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

댓글