본문 바로가기

패스트캠퍼스_컴공전공필수+인공지능/0원 챌린지

3/01(수) 상속과 예외처리 2

3. 예외처리

  • try ~ except
    • try : 에러 문장
    • except : 에러 났을 때 실행할 문장
    • 위와 같이 입력할 경우, 에러 문장에서 에러가 발생했을 때 -> except 에 있는 문장이 실행된다 (try 문장은 실행되지 않은 , 에러 뽑아주는 것과 같음.)
    • 사용법)
      • try:
        • 에러 문장
      • except:
        • 에러가 났을 때 실행할 문장
    • 다른 사용법 )
      • try:
        • 에러문장
      • except Exception as e:  #이렇게 [  as e ] 형태로 적어 놓으면 발생할 에러문이 string 형태인 -> e로 취급된다. => 에러는 e 라고 할 수 있다.
        • print(e)
        • 에러가 났을 때 실행할 문장
      • 위와 같이 입력할 경우 에러 문장에서 에러가 발생했을 때 except 에 있는 문장이 실행된다.
      • 에러 내용이 print(e) 를 통해 찍힌다.
    • 다른 사용법)
      • try:
        • 에러 문장
      • except:
        • 에러가 났을 때 실행할 문장
      • else:
        • 에러가 안나면 실행할 문장
      • finally:
        • 에러 발생 여부와 상관없이 항상 실행될 문장
  • 예외의 강제 발생
    • raise Exception("강제로 에러를 발생시킴")
    • 이와 같은 방식으로 raise 문을 통하여 우측의 string 을 출력하여 에러가 발생하게 할 수 있습니다.
    • 강제로 에러가 나오게 한다고 생각하면 된다.
  • Assert 문
    • 사용예시 를 보면서 이해하자)
      • A=3
      • assert A>10 , 'A가 너무 작습니다.'
      • (다음과 같이 assert 조건, 아니면 행할 행동)
    • assert 로 시작하는 문장에 조건식을 적으면 , 
    • 조건을 만족하지 않을 경우 arror 가 발생하며 우측의 string을 출력합니다.
    •  

실습을 해보자!

# 추상클래스는 ABCMeta를 상속 받고 추상메소드가 있어야 함
from abc import ABCMeta, abstractmethod	# abc 에서 2개나 import해야하나??

class Abstract1 (metaclass=ABCMeta):	# metaclass = ABCMeta 로 설정하는 것이 추상클래스의 핵심
    attr = "추상클래스"
    
    @abstractmethod	# 이렇게 @로 해주면 자식이 반드시 해당 메소드를 재정의해야함
    def m1(self):
        pass
    def m2(self):
        print('대박')
#추상클래스는 객체를 못 만듬
a1 = Abstract1()	# 혼자 따로 쓰이지 않음 -> 추상적이니까!

# 추상클래스를 상속 받은 클래스는 반드시 추상메소드를 재정의
class A1(Abstract1):
    def m1(self):
        print('사건')
    def p1(self):
        print("아 이건 필수네")
   
a1 = A1()
a1.m1(); a1.p1()

* 필수 삽입 링크 : http://bit.ly/3Y34pE0

 

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

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

fastcampus.co.kr

<사진 2장>

 

 

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