태지쌤

로봇 & 코딩교육 No.1 크리에이터

피지컬컴퓨팅

엔트리/스크래치와 예외처리(exception handling)

태지쌤 2024. 3. 21. 20:57
반응형

ㅇ안녕하세요? 로봇 & 코딩교육

No.1 크리에이터 태지쌤이에요.

오늘은 중요한 주제를 다루려고 합니다.

바로 예외 처리에요.

물론 파이썬이나, 자바, C언어 계열을 공부한다면

너무나 흔한(?) 주제인데요.

엔트리나 스크래치와 같은 교육용 프로그래밍 언어에서는

예외 처리의 중요성을 놓치는 경우가 많아요.

1) 예외란?

일단 예외가 무엇인지 알아야겠죠?

예외는 프로그램이 정상적으로 실행될 수 없는 상태를 말해요.

리스트에서 특정 항목을 삭제하려고 하는데

0이하를 입력하거나 리스트의 항목 수보다

더 큰 수를 입력하게 되면

엔트리에서 다음과 같은 장면을 볼 수 있어요.

이번에는 다른 경우를 살펴볼게요.

조금 더 쉬운 경우에요.

나눗셈 계산에서 2개의 수를 입력받아

첫 번째 수를 두 번째 수로 나누는 경우를 생각해볼게요.

이렇게 코딩했을 때 10과 2를 입력하면

정상적으로 2가 출력되요.

 

그런데 두 번째 수로 0을 입력하면?

Infinity라고 나오는데

Infinity는 무한대를 의미해요.

위의 엔트리 코드를 동일한 논리로

파이썬으로 입력해서 실행해봤어요.

ZeroDivisionError가 발생하는 걸 볼 수 있어요.

2) 예외 처리

앞에서 살펴본 예외 상황에 프로그램이 대응할 수 있도록

처리하여 오류가 발생하더라도 프로그램이 중단되지 않고

계속 실행하도록 할 수 있어요.

이걸 예외 처리라고 해요.

앞에서 살펴본 나눗셈 엔트리 코드에서

두 번째 수로 0을 입력받으면 0으로 나눌 수 없다는

메시지를 출력하고 정상 숫자가 입력되면

나눗셈 결과를 출력하도록 코드를 수정해볼까요?

 

하지만 이 코드 역시 문제가 있어요.

혹시 생각해봤나요?????

네! 그것은 바로!

숫자가 아닌 다른 값 예를 들어 한글을 입력받으면

그것도 예외가 될 수 있겠죠.

나눗셈 계산을 위해서는 숫자만 입력받아야 해요.

엔트리에서 입력받은 값이 숫자인지

확인할 수 있는 방법이 있을까요?

있습니다. 판단 카테고리에서

'~가 숫자인가?'라는 블록을 이용해서

사용자로부터 입력받은 값이

숫자인지, 영문인지, 한글인지 구분할 수 있어요.

이 블록을 활용해서 최종적으로 코드를 작성해봤어요.

파이썬 자바 C언어 뿐만 아니라

엔트리나 스크래치와 같은

교육용 프로그래밍언어에서도

예외 처리 개념을 충분히 다룰 수 있어요.

 
반응형