더 많이 실패하기

코딩공부 60일차: 자바의 정석 / 자바의 정석 97~101강 본문

자바

코딩공부 60일차: 자바의 정석 / 자바의 정석 97~101강

김발자~ 2022. 9. 28. 19:45
반응형

개발 공부 60일차

자바의 정석 기초편 강의

https://www.youtube.com/watch?v=oJlCC1DutbA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 

 

 

총 171개의 강의로 구성되어 있다

총 강의 시간은 80시간 정도

 

 

강의는 기초편을 기준으로 제작되어 있지만,

http://www.yes24.com/Product/Goods/24259565

 

Java의 정석 - YES24

최근 7년동안 자바 분야의 베스트 셀러 1위를 지켜온 `자바의 정석`의 최신판. 저자가 카페에서 12년간 직접 독자들에게 답변을 해오면서 초보자가 어려워하는 부분을 잘 파악하고 쓴 책. 뿐만 아

www.yes24.com

링크로 첨부한 자바의 정석 3판으로도 무리가 없다는 댓글이 있어 그대로 진행

 

 

 

 

 


ch 8 - 1~3 프로그램 오류, 예외 클래스의 계층구조

(3판 기준 414~416쪽)

https://www.youtube.com/watch?v=fcRapZYB29c&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=97 


 

1. 예외처리(exception handliing)

1.1 프로그램 오류

컴파일러의 기능
구문체크
번역
최적화

컴파일 에러(compile-time error): 컴파일할 때 발생하는 에러
  컴파일의 기능
  -구문체크
  -번역
  -최적화
런타임 에러(runtime error): 실행할 때 발생하는 에러
  -에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
  -예외(exception): 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
논리적 에러(logical error): 작성 의도와 다르게 동작

에러는 어쩔 수 없지만, 예외는 처리해야 한다
예외처리의 정의와 목적
정의: 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
목적: 프로그램의 비정상 종료를 막고 정상적인 실행상태를 유지하는 것


1.2 예외 클래스의 계층구조
Exception클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
  -IOException (입출력 예외) 등
RuntimeException: 프로그래머의 실수로 발생하는 예외

 

 

 


ch 8 - 4~6 예외 처리하기, try-catch문의 흐름

(3판 기준 416~422쪽)

https://www.youtube.com/watch?v=I4XrVgCzKM4&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=98 


 

1.3 예외처리하기 - try-catch문

try {
   //예외 발생 가능성이 있는 문장 적기
} catch (exception e1) {
  //e1을 처리하기 위한 문장
}

try문의 { }은 생략 불가

 

1.4 try-catch문에서의 흐름

1.5 예외의 발생과 catch 블럭

예외가 발생한 시점부터 그 이후의 문장들은 실행되지 않는다(해당 catch블럭만 실행하고 try 블럭 빠져나감)
예외가 발생하지 않으면 catch문에 들어가지 않는다

모든 예외를 처리할 수 있는 catch(Exception e) { }는 제일 마지막에 둔다

 

 

 


ch 8 - 7, 8 printStackTrace(), 멀티 catch 블럭

(3판 기준 422~424쪽)

https://www.youtube.com/watch?v=81_BL9qSa9w&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=99 


 

1.5 예외의 발생과 catch 블럭

printStackTrace()와 getMessage()

예외가 발생하면 예외객체가 생성된다
다음과 같은 메서드들이 이 객체에 있는 정보들을 볼 수 있게 해준다
printStackTrace(): 예외발생 당시의 호출스택(Call Stack)에 있었던 메서드의 정보와 예외 메시지릴 화면에 출력한다
getMessage(): 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다


멀티 catch블럭
내용이 같은 catch블럭을 하나로 합친 것(JDK 1.7부터 가능)
부모 자식 관계는 Instranceof 때문에 부모만 써도 의미상 동일하기 때문에 둘이 같이 쓰지 않는다
참조변수  e는 두 ExceptionN의 공통 멤버만 사용 가능하다

 

 

 


ch 8 - 9, 10 예외 발생시키기

(3판 기준 424~426쪽)

https://www.youtube.com/watch?v=Ak7Z4jhMKRg&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=100 


 

1.6 예외 발생시키기
① 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든다
  Exception e = new Exception();
② 키워드 throw를 이용해서 예외를 발생시킨다
  throw e;


checked예외: 컴파일러가 예외 처리 여부를 체크 (예외 처리 필수 - try-catch문 필수)
  -Exception클래스들
unchecked예외: 컴파일러가 예외 처리 여부를 체크 안함(예외 처리 선택)
  -RuntimeException클래스들

 

 

 


ch 8 - 11~14 예외 선언하기, finally 블럭

(3판 기준 427~435쪽)

https://www.youtube.com/watch?v=Px3u24AvadM&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=101 


 

1.7 메서드에 예외 선언하기
예외를 처리하는 방법
① try-catch문
② 예외 선언하기 - 예외 떠넘기기(알리기)
  메서드가 호출시 발생가능한 예외를 호출하는 쪽에 알리는 것
③ 은폐


finally 블럭
try {

} catch (Exception e1) {

} finally {
  //예외의 발생여부에 관계없이 항상 수행되어야 하는 문장들
  //try-catch문의 맨 마지막에 위치
}
예외 발생여부와 관계없이 수행되어야 하는 코드 - 코드 중복 제거를 위함

 

 

 


 

 
반응형
Comments