본문 바로가기

프로그래밍 언어/코틀린_쌩초보를 위한 기초

쌩초보를 위한 기초_19_예외처리 Exception

코드 중단 Exception: try catch

 

Exception(예외)는 코드가 중단하는 현상이다.

프로그램이 실행하려면 컴파일러(compiler)라는 해석 프로그램이 운영체제(윈도우즈 등)가 알 수 있는 기계어로 바꿔서 cpu에 전달하면 그 내용을 작업하는 과정을 거쳐 프로그램이 작동한다.

코드를 작성할 때 빨간색 에러 메세지가 나타나는 것도 미리 에러를 방지하기 위해 컴파일러가 작동하고 있는 것이다.

하지만 실행 도중에 어떤 에러가 일어날 지 완벽하게 알 수는 없다.

프로그램은 이런 경우에 Exception(예외)를 발생시키고 종료된다.

이런 예외 현상을 일으키는 원인은 다양하다.

 

예외가 일어나는 것에 대비하는 것을 예외처리라고 한다.

잠재적으로 Exception이 발생할 수 있는 코드를 try ~ catch문으로 감싸놓는다.

try블록에서 발생하면 catch블록에서 처리한다.

 

어떤 원인으로 어디서 일어날 지 모르는데 try catch를 사용한다는게 이해가 잘 안된다.

예외가 일어날 가능성이 있는 코드라는걸 알아야 한다는 말이다.

자바(java)에서는 특정 부분에 try catch를 필수적으로 사용한다고 한다.

에러가 자주 나는 모양이다.

코틀린에서는 try catch 사용을 강제하지는 않지만 자바처럼 try catch를 사용할 수 있다.

코드를 만들 때 논리적으로 예외가 나타나지 않도록 만드는 것이 최선이다.

 

try catch 사용하는 간단한 예를 살펴본다.

 

위 코드에서 변수 z는 변수x를 변수y의 값 0으로 나누고 있다.

어떤 수를 0으로 나누면 안된다.

그래서 실행하면 에러가 난다.

 

이제 try catch로 예외 처리를 해 본다.

 try 중괄호 안에 예외가 생길 수 있는 코드를 넣는다.

 

catch의 괄호에는 e: 다음에 예외를 처리하는 class 이름을 적어 그 class에서 처리하도록 한다.

위 에러 문장에서 ArithemeticException이 수 연산을 처리하는 class의 예이다.

중괄호 안에는 예외를 처리하는 문장을 넣는다.

 

finally 중괄호에는 실행하는 문장을 넣는다. 생략할 수 있다.

 

Null Pointer Exception(널 포인터 예외)

 

에러 중 대부분이 Null Pointer Exception(널 포인터 예외)이 발생한다.

즉, 값이 없는 상태가 되는 것이다.

코틀린은 Null을 원칙적으로 허용하지 않으며 엄격하게 관리하려고 애쓴다.

그래서 Null(널) 에러를 방지하기 위해 몇 가지 Operator(조절기호)를 만들어 두었다.

변수를 사용하기 전에 null 검사하면 에러가 발생하지 않는다.

 

null에러에 대해서는 이전 글 기초11에서 다루었다.

 

끝.