객체지향 언어에서는 가지고 있는 기능 중에 하나인 예외처리와 쓰레드에 대해 살펴보겠습니다.
객체지향 언어의 장점이지만 단점은 기존 메소드를 손쉽게 가져와 사용할 수 있지만 잘못된 동작에 의해 예상하지 못한 에러가 발생하여 프로그램이 중단되는 경우가 있습니다.
중요한 프로젝트인 경우 예외 상황에 의해 프로그램이 중단되면 큰 문제가 발생할 수 있습니다.
이것을 대처할 수 있도록 try - except 를 지원하고 있습니다.
기본 구조는 다음과 같습니다.

'문제없는 구간'을 print하고 1을 0으로 나누는 예외상황이 발생하여 except가 발생한 예제입니다.
'Exception' 모든 예외상황을 처리합니다.
만약 0으로 나눈 것만 처리하려면 다음과 같이 합니다.

ZeroDivisionError 를 통해 에러를 처리합니다.
여기에는 finally이 있는데 이것은 예외상황이 없어도 무조건 실행하는 구간이됩니다.

추가적으로 인덱싱 에러처리입니다. 즉 발행할 error를 알고 있다면 이와 같이 예외 처리 할 수 있습니다.

또는 다음과 같이 중복으로 처리도 가능합니다.

이번에는 쓰레드에 대해 살펴 보겠습니다.
쓰레드는 컴퓨터가 처리하는 단위라고 할 수 있습니다.
일반적으로 하나의 쓰레드로 한줄 한줄 컴퓨터가 실행하여 처리하지만 멀티 쓰레드는 2개 이상의 프로그래밍을 시간 할 당을 통해 마치 동시에 처리하는 것처럼 하는 기능입니다.
다음 그림과 같이 1개의 쓰레드로 실행하게 되면 1번을 다 처리하고 2번을 처리하겠지만
2개의 쓰레드를 사용하면 1번과 2번이 번갈아가며 실되게 됩니다.
즉 동시에 처리 되어야 하는 경우에 사용되게 됩니다.

예제소스를 살펴 보겠습니다.

쓰레드 t1, t2를 코드적으로 한줄 차이로 실행하였지만
t1.start()
t2.start()
쓰레드는 시간을 조율하여 아래와 같이 번갈아 가며 실행하고 있습니다.
