질문이 있으십니까?

기본 컨텐츠 및 사용자가 직접 참여하여 만들어진 다양한 내용을 검색합니다.

8. 예외처리(try,except)

>>> print 방가~
  File "", line 1
    print 방가~
          ^
SyntaxError: invalid syntax
File "", line 1
>>> def f(a, b):
...   return (a * b) + (a / b)
...
>>> f(4,2)
10
>>> f(3,0)
Traceback (most recent call last):
  File "", line 1, in ?
  File "", line 2, in f
ZeroDivisionError: integer division or modulo by zero
>>> def f(a, b):
...   if a and b:                  # a와 b가 둘 다 0이 아닐 때
...     return (a * b) + (a / b)
...   elif a:                      # 그렇지 않고 a만 0이 아닐 때
...     return '불능'
...   else:                        # 둘 다 0일 때
...     return '부정'
...
>>> print f(3,0)
불능
>>> print f(0,0)
부정
>>>
>>> f(300000, 500000)
150000000000L
>>> f(300000, 500000)
Traceback (most recent call last):
  File "", line 1, in ?
  File "", line 3, in f
OverflowError: integer multiplication
>>> f(이십, 오)
#%$^*#<%@??? --;

문법(Synctax)

try:
  # 무언가를 수행한다.
except IndexError as e:
  print("인덱싱할 수 없습니다.", e)
except ZeroDivisionError as e:
  print("0으로 나눌 수 없습니다.", e)
except (ZeroDivisionError,IndexError) as e:
  print(e)
except FileNoFoundError:
  pass #오류 회피하기
finally:
  # 종료코딩(닫을거닫는다)

활용

>>> def f(a, b):
...   try:
...     if a and b:
...       return (a * b) + (a / b)
...     elif a:
...       return '불능'
...     else:
...       return '부정'
...   except:
...     return '똑 바로 살아라'
class Eagle(Bird):
  def fly(self):
    raise NotImplementedError # 일부러 오류 발생시키기

댓글을 작성하세요

문서 이력

  • 2020-06-07 날짜로 신달수 님으로 부터 컨텐츠명이 변경 되었습니다.
  • 2020-06-09 날짜로 신달수 님께서 등록 작업을 하였습니다.
  • 2020-06-18 날짜로 신달수 님께서 등록 작업을 하였습니다.