우리가 작성하는 코드들은 어떤 방식으로, 어느 순간이든 오류가 발생할 수 있다.
매개변수를 받아서 값을 반환하는 메서드가 있다고 해보자, 10번 동안 메서드를 통해서 목표로 하는 결과가 나왔다 가정해보자. 이 메서드에 다양한 값을 넣었을 때, 모든 값에 잘 대응해서 결과가 잘 나오거나, 언제나 정상적인 동작을 한다면 좋겠지만, 예상치 못한 예외가 생기게 된다면, 기능이 제대로 동작하지 못하게 되며, 최악의 경우 게임은 멈춰버린다.
try, catch, finally
try
- try안에는 예외가 발생했을 때 대응이 필요한 코드를 작성한다.
- try내의 코드에서 예외가 발생하면, catch부분의 코드를 실행한다.
- try부분에 예외가 발생하더라도 게임은 멈추지 않는다.
- catch, finally 두 개 중 하나는 try와 사용되어야 한다.
catch
- try에서 예외가 발생되어야 실행된다.
- throw로 발생된 예외나, try에서 발생한 예외 상황에 대응한다.
- 모든 예외를 처리하는 데에는 Exception을 사용하지만, 특정한 예외는 별도로 처리하고자 한다면, 따로 처리해 줄 수 있다.
- catch는 예외가 발생하는 경우에 따라서, 여러 개를 만들 수 있다.
- 내부에 예외에 대응하는 코드를 작성한다.
finally
- finally는 try의 예외 발생 여부와는 상관없이, 프로그램이 중단되는 상황을 제외하고는 try, catch 이후에 실행된다.
- 반드시 실행되어야 하는 코드를 작성한다.
throw
- 사용자가 예외 상황을 직접 발생 시킬 수 있다.
- 기존에 존재하는 모든 예외의 인스턴스를 생성하여서 만들어 던질 수 있다.