
이 때 @FunctionalInterface를 인터페이스 위에 작성하여 단 하나의 추상 메소드만 선언할 수 있도록 제한해야 한다.
람다식(Lambda Expression)

이름이 없는 메소드로서 값처럼 사용이 가능하며, 매개변수로도 전달이 가능하다.
함수형 인터페이스는 추상 메소드가 한 개만 선언되기 때문에 구현할 때 메소드 이름이 필요 없다.
따라서 람다식 문법은 익명 메소드(Anonymous Method)라고도 부른다.

예외 처리

컴파일 시, 빌드 시, 런타임 시 오류가 발생하면
이를 제어문으로 막을 수 있으나, 제어문으로도 막을 수 없는
오류들을 직접 처리할 수 있어야한다.
예외 처리 문법
try {
예외가 발생할 수도 있는 문장
예외가 없을 때 실행할 문장
} catch(예외이름 객체명) {
예외 발생 시 실행할 문장
} catch(예외이름 객체명) {
예외 발생 시 실행할 문장
} ...
} finally {
예외 발생 여부에 상관없이 무조건 실행할 문장
※ 외부 장치와 연결했을 경우 다시 닫을 때 주로 사용한다.
또한 finally는 catch로 잡지 못했을 때도 실행된다.
}
예외 발생
직접 예외를 발생시키기 위해서는 예외 던지기를 사용해야 하며, 이 때에는 생성자 호출 전 throw 키워드를 사용한다
ex) throw new BadWordException();
사용자의 정의 예외