티스토리 뷰
이번에는 의도적으로 에러를 발생시키는 방법을 공부해보겠습니다.
실제로 에러 상황이 발생한 것이 아니라도 프로그램이 허용하지 않는 동작을 하려고 할 때 의도적으로 에러를 발생시킬 수 있으며 문법은 다음과 같습니다.
| raise 에러종류 | 
계산기의 종류를 조금 바꿔서 한 자리 숫자에 대해서만 나누기를 할 수 있도록 해보겠습니다. 다만 나눗셈을 하기 전에 사용자로부터 입력받은 값들이 한 자리 숫자가 맞는지 확인하여 조건에 맞지 않을 때는, 즉 10 이상일 때는 의도적으로 ValueError 를 발생시키고 except 를 통해 예외처리를 하도록 하겠습니다.
try:
    print("한 자리 숫자 나누기 전용 계산기입니다.")
    num1 = int(input("첫 번째 숫자를 입력하세요: "))
    num2 = int(input("두 번째 숫자를 입력하세요: "))
    if num1 >= 10 or num2 >= 10: # 입력받은 수가 한 자리인지 확인
        raise ValueError
    print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError:
    print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")
프로그램을 실행시키고 각각 한 자리 숫자인 6 과 2 를 적어보면 정상적으로 3 이 출력되는 것을 볼 수 있습니다.
| 한 자리 숫자 나누기 전용 계산기입니다. 첫 번째 숫자를 입력하세요: 6 두 번째 숫자를 입력하세요: 2 6 / 2 = 3 | 
프로그램을 다시 실행시키고 일부러 에러 상황을 만들기 위해서 첫 번째 숫자를 두 자리인 10 으로 입력하고 두 번째 숫자는 5 라고 해보겠습니다.
| 한 자리 숫자 나누기 전용 계산기입니다. 첫 번째 숫자를 입력하세요: 10 두 번째 숫자를 입력하세요: 5 잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요. | 
이번에는 if 문에 의해서 ValueError 가 발생하였고 이에 따라 예외 처리 구문에 작성한 print() 의 내용이 출력되는 것을 확인할 수 있습니다.
'파이썬 강의 > 기본편' 카테고리의 다른 글
| [파이썬 기본편] 10-4.finally (0) | 2021.03.21 | 
|---|---|
| [파이썬 기본편] 10-3.사용자 정의 예외처리 (2) | 2021.03.20 | 
| [파이썬 기본편] 10-1.예외처리 (0) | 2021.03.18 | 
| [파이썬 기본편] 9-12.퀴즈 #8 (1) | 2021.03.17 | 
| [파이썬 기본편] 9-11.스타크래프트 프로젝트 후반전 (6) | 2021.03.16 | 
					댓글
						
					
					
					
				
			
										공지사항
										
								
							
								
								
									최근에 올라온 글
									
							
								
								
									최근에 달린 댓글
									
							
								
								- Total
- Today
- Yesterday
									링크
									
							
								
								
									TAG
									
							
								
								- coloso
- nanobanana
- Coding
- GUI
- Tkinter
- ChatGPT
- 파이썬
- 프롬프트 엔지니어링
- 주피터노트북
- 파이게임
- game
- 행맨
- 환경설정
- 아나콘다
- Unity
- Visual Studio Code
- 코랩
- 비주얼 스튜디오 코드
- c언어
- onlineclass
- 챗GPT
- Mac
- Colab
- pycharm
- 나도코딩
- pygame
- Xcode
- repl.it
- vscode
| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
									글 보관함