Posts 예외처리
Post
Cancel

예외처리

1. 예외처리


1.1 예외처리란?

  • 코드에서 실행중에 에러가 발생한 경우 에러를 처리하는 방법
  • try, except, fianlly, raise를 사용한다.


1.2 Try, Except

1
2
3
ls = [1, 2, 3]
print(ls[2])
print('Done')
1
2
3
Done
  • 에러가 발행해도 코드의 실행을 계속하고 싶을때 사용한다


1
2
3
4
5
6
try : 
    print(ls[3])
except Exception as e:
    print('error')
    print(e)
print('Done')
1
2
3
error
list index out of range
Done
  • expect 뒤의 xception as e의 옵션을 주고, print(e)를 사용하여 어떠한 에러가 생성되었는지 출력하게 함


1.3 Finally

1
2
3
4
5
6
try : 
    1/0
except :
    print('error')
finally:
    print('Done')
1
2
error
Done
  • try, except 구문 실행된 후 finally 구문이 실행


1.4 Raise

1
2
3
4
5
6
try :
    1/0
except Exception as e:
    print('error')
    raise(e)
print('Done')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
error

---------------------------------------------------------------------------

ZeroDivisionError                         Traceback (most recent call last)

<ipython-input-6-f205cb4ffc4f> in <module>
      3 except Exception as e:
      4     print('error')
----> 5     raise(e)
      6 print('Done')


<ipython-input-6-f205cb4ffc4f> in <module>
      1 try :
----> 2     1/0
      3 except Exception as e:
      4     print('error')
      5     raise(e)


ZeroDivisionError: division by zero
  • 강제로 에러를 발생시키는 명령으로 함수나 클래스 등 예외 사항(에러)에 사용


1.5 에러 생성 실습

1
2
3
4
5
6
7
8
9
class LowNumber(Exception):
    
    def __str__(self):
        return 'number grater than 10'
    
def input_number(num):
    if num <= 10:
        raise LowNumber()
    print(num)
1
input_number(12)
1
12
  • 10이상의 숫자를 함수에 넣었기 때문에 에러없이 함수가 실행된다


1
input_number(9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---------------------------------------------------------------------------

LowNumber                                 Traceback (most recent call last)

<ipython-input-10-c257a8dbce24> in <module>
----> 1 input_number(9)


<ipython-input-8-c703241febf7> in input_number(num)
      6 def input_number(num):
      7     if num <= 10:
----> 8         raise LowNumber()
      9     print(num)


LowNumber: number grater than 10
  • LowNumber의 함수를 사용하여 10 이상의 숫자를 넣으라는 에러를 출력하는 함수 생성
  • 실제 input_number의 함수를 사용할떄 10 이하의 숫자가 들어가오면 에러가 출력됨.
This post is licensed under CC BY 4.0 by the author.