본문 바로가기
IT/자바

자바 정리 - 익명객체, 예외처리

by 김보리 2021. 11. 30.
728x90
반응형

익명 객체

익명 자식 객체 : 자식 클래스가 재사용되지 앟고 오로지 특정 위치에서 사용할 경우라면 자식 클래스를 명시적으로 선언하는 것은 귀찮은 작업이 됨. 이 경우 익명 자식 객체를 생성해 사용

  • 익명 자식 객체 생성 방법
    부모클래스 [필드|변수] = new 부모클래스(매개값, …) {
    //  필드
    // 메소드 };

 

익명 구현 객체 : 구현 클래스가 재사용되지 않고 오로지 특정 위치에서 사용할 경우라면 구현 클래스를 명시적으로 선언하는 것은 귀찮음. 이 경우 익명 구현 객체를 생성해서 사용 

  • 익명 구현 객체 생성 방법
    인터페이스 [필드|변수] = new 인터페이스( ) {
    // 인터페이스에 선언된 추상 메소드의 실체 메소드 선언
    // 필드
    // 메소드 };

예외 처리

예외(exception)

  • 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류
  • 예외 처리 프로그램 통해 정상 실행 상태 유지 가능
  • 예외 발생 가능성이 높은 코드 컴파일 할 때 예외 처리 유무 확인 ≠ 버그

 

예외 클래스 (에러 발생 시 어떻게 처리할 지)

일반 예외(exception)

  • 컴파일러 체크 예외
  • 자바 소스 컴파일 과정에서 해당 예외 처리 코드 있는지 검사

실행 예외(runtime exception)

  • 컴파일러 넌 체크 예외
  • 실행 시 예측할 수 없이 갑자기 발생하기에 컴파일 과정에서 예외처리코드 검사하지 않음

자바에서는 예외를 클래스로 관리

 

source(java) ->(compile time) ->  binary file(.class)  -> (run time) -> jvm

 

예외 처리 코드

try-catch-finally 블록

  • 생성자 및 메소드 내부에서 작성되어 일반 예외와 실행예외가 발생할 경우 예외 처리 가능하게 함
  1. try 블록에는 예외 발생 가능 코드가 위치
  2. try 블록 코드가 예외발생 없이 정상실행되면 catch 블록의 코드는 실행되지 않고 finally 블록의 코드를 실행. try 블록의 코드에서 예외가 발생한다면 실행 멈추고 catch 블록으로 이동하여 예외 처리 코드 실행. 이후 finally 블록 코드 실행
  3. finally 블록은 생략 가능하며, 예외와 무관하게 항상 실행할 내용이 있을 경우에만 작성

 

정상 실행 되었을 경우                                       예외가 발생되었을 경우

try { 예외 발생가능 코드 try {  예외 발생 

} catch(예외클래스 e) { } catch(예외클래스 e) {

   예외 처리   예외 처리

// finally :  에러가 발생해도, 발생하지않아도 무조건 실행

} finally { } finally {

   항상 실행; }   항상 실행; } 

 

728x90
반응형

댓글