반응형
[시작하며]
모든 프로그램을 개발할 때.
저희 개발자와는 멀어질래야 멀어질 수 없는 것이 있습니다.
바로 Error지요. 물론 모든 것을 계산하여 오류가 없는 프로그램을 짜면
제일 좋겠지만 짜다보면 어쩔 수 없이 오류가 나기도 합니다.
이때 넘어 갈 오류는 깔끔하게 넘어가고 수정하고 할 수 잇는 기능을
보통 예외 처리라고 생각 합니다.
예외 처리란?
예외가 발생 시에 프로그램이 비정상적으로 종료하는 하는 것을 방지하고 예외에 대하여 개발자 판단하에
적절한 수행을 하게 하는 것.
기본 형식
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#기본 형식
try:
#실행할 코드
except:
#예외가 발생했을 때 이쪽으로!
# 기본 형식2
try:
# 실행할 코드
except:
# 예외가 발생했을 때 이쪽으로!
else:
#에러가 발생하지 않았으면 일쪽으로!
finally:
#에러가 나든 안나든 예외처리 구문이 끝나면 일로!
# 특정,개발자가 선택한 예외만 처리
try:
#실행 할 코드
except 특정예외: # ZeroDivisionError< 이처럼 숫자가 0으로 나누었을 때 발생한 에러 같은??
# 특정예외가 발생하였을 때 실행
# 에러 메세지 받아보기
try:
# 실행 할 코드
except 특정예외 as e: # ZeroDivisionError< 이처럼 숫자가 0으로 나누었을 때 발생한 에러 같은??
print("에러가 발생했습니다",e) # 특정 에러에 대한 메세지 출력
#ZeroDivisionError 에러면 [division by zero]
|
cs |
[예외 계층 구조]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StopAsyncIteration
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
| +-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- BlockingIOError
| +-- ChildProcessError
| +-- ConnectionError
| | +-- BrokenPipeError
| | +-- ConnectionAbortedError
| | +-- ConnectionRefusedError
| | +-- ConnectionResetError
| +-- FileExistsError
| +-- FileNotFoundError
| +-- InterruptedError
| +-- IsADirectoryError
| +-- NotADirectoryError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
| +-- RecursionError
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning
|
cs |
위의 계층 구조에 대한 자세한 설명은 docs.python.org/ko/3/library/exceptions.html#exception-hierarchy
위의 링크 참조
[참고]
파이썬 공식 홈페이지
반응형
'Python > 기본' 카테고리의 다른 글
[Python 기본기] 튜플(Tuple) and 딕셔너리(Dictionary) 요약! (개념 , 주 사용 기능/함수) (0) | 2020.10.08 |
---|---|
[Python 기본기] 자주 사용하는 리스트(list) 요약! (개념 , 슬라이싱 , 주 사용 함수) (0) | 2020.10.05 |
[Python 기본기] String 문자열 주로 사용되는 문법2 (formating , 함수 ) (0) | 2020.10.04 |
[Python 기본기] String 문자열 주로 사용되는 문법1 (연산 , 슬라이싱 , 인덱싱) (0) | 2020.10.04 |
댓글