본문 바로가기

Programming/Python

예외처리

예외처리


예외처리는 C++, JAVA를 해본 사람이라면 try ~ catch라는 구문을 들어봤을 것입니다. python에서도 예외처리가 존재합니다.





python을 실행해서 0/0 을 입력합니다.

0/0을 계산하게 되면 에러가 발생하는데 0을 나눈다고 하면서 에러가 발생합니다.


예를 들자면, 게임 속에서 몬스터에게 공격을 했을 때 0이라는 데미지를 준다면 뭔가 잘못된 것입니다. 혹은 데미지가 int형의 범위 내에서 이루어진다고 했을 때, 그 범위를 넘어간다면 이 또한 뭔가 잘못된 것입니다. 이러한 예외들이 발생하게 된다면 게임은 엉망진창으로 변하게 되죠. 이러한 이유 때문에 예외처리가 있습니다.






exception.py를 작성합니다. 


num의 변수에 값을 입력받아서 try 구문 안의 20과 나눕니다. 

앞서 0으로 나눴을 경우 에러가 발생하게 되는데 exception.py에서 0을 입력한 경우 예외가 발생하게 된 경우이므로 except 구문으로 넘어가게 됩니다.

0으로 나누고 있다고 출력하게 되는거죠.





추가적으로 0이 아니라 다른 예외가 발생한다면 어떻게 소스코드를 작성해야 할까요?





이번에는 숫자가 아니라 문자를 넣어보도록 하겠습니다.

 ZeroDivisionError는 0으로 나눴을 때 나타나는 에러메시지 입니다.


Exception as err: 구문은 어떤 에러가 발생한 경우 어떤 예외가 발생했는지 출력을 하기 위한 구문입니다.

위 소스코드를 확인하면 정수 값을 입력하지 않고 a라는 문자 값을 넣고 있기 때문에 에러를 출력하고 있습니다.



'Programming > Python' 카테고리의 다른 글

파일 목록 출력  (0) 2016.03.14
파일 입출력  (0) 2016.03.14
패키지  (0) 2016.03.14
모듈  (0) 2016.03.14
클래스, 객체, 상속  (0) 2016.03.14