인터페이스, 람다식, 패키지

1. 디버깅

이클립스의 디버거

2. 예외 처리

예외 처리기

try-catch-(finally)

try 블록에서 발생된 예외를 catch 블록에서 처리한다.

try-with-resources

try 문장이 정상적으로 종료되건 예외가 발생하던 간에 무조건 리소스들이 자동으로 닫혀지게 한다.

close() 메소드 호출

자원 객체가 java.lang.autoCloseable 인터페이스를 구현하여야 한다.

장점 - 코드를 짧고 간결하게 만들어 읽기 쉽고 유지보수가 쉬워진다. try-catch에서처럼 실수로 close를 빼먹는 경우는 없다. 이것을 이용하면 이런 자잘한 버그들이 발생할 가능성이 적다.

public static void main(String args[]) {
    try (CustomResource cr = new CustomResource()) {
        cr.doSomething();
    } catch (Exception e) {
				e.printStackTrace(); //호출 스택의 내용 출력
				System.out.println(e.toString());
				System.out.println(e.getMessage()); //예외도 객체로 취급하여 Throwable 클래스를 상속받고, Throwable클래스의 메소드를 사용할 수 있다
    }
}

private static class CustomResource implements AutoCloseable {
    public void doSomething() {
        System.out.println("Do something...");
    }

    @Override
    public void close() throws Exception {
        System.out.println("CustomResource.close() is called");
    }
}

3. 예외의 종류

Error, RuntimeException, 기타 예외

  1. Error

    하드웨어의 오류. 애플리케이션 단에서는 에러를 보고할 뿐 처리할 수는 없다. 애플리케이션을 종료하는게 보통이다.