
Ch8-18_연결된 예외(chained exception)
2021. 12. 21. 20:13
JAVA/Chapter8
Ch8-18_연결된 예외(chained exception) - 한 예외가 다른 예외를 발생시킬 수 있다. - 예외 A가 예외 B를 발생시키면 A는 B의 원인 예외(cause exception) Throwable initCause(Throwable cause) : 지정한 예외를 원인 예외로 등록 Throwable getCause() : 원인 예외를 반환 [이유1] : 여러 예외를 하나로 묶어서 다루기 위해서 [이유2] : checked예외를 unchecked예외로 변경하려 할 때

Ch8-15_사용자 정의 예외 만들기
2021. 12. 21. 00:16
JAVA/Chapter8
Ch8-15_사용자 정의 예외 만들기 - 우리가 직접 예외 클래스를 정의할 수 있다. - 조상은 Exception과 RuntimeException 중에서 선택 Ch8-17_예외 되던지기(exception re-throwing) - 예외를 처리한 후에 다시 예외를 발생시키는 것 - 호출한 메서드와 호출된 메서드 양쪽 모두에서 예외처리하는 것

Ch8-14_finally 블럭
2021. 12. 20. 19:42
JAVA/Chapter8
Ch8-14_finally 블럭 - 예외 발생여부와 관계없이 수행되어야 하는 코드를 넣는다. try { // 예외가 발생할 가능성이 있는 문장들을 넣는다. } catch (Exception1 e1) { // 예외처리를 위한 문장을 적는다. } finally { // 예외의 발생여부에 관계없이 항상 수행되어야하는 문장들을 넣는다. // finally블럭은 try-catch문의 맨 마지막에 위치해야한다. } 참고 : try 블럭 안에 return문이 있어서 try블럭을 벗어나갈 때도 finally블럭이 실행된다.
Ch8-11_메서드에 예외 선언하기
2021. 12. 20. 18:59
JAVA/Chapter8
Ch8-11_메서드에 예외 선언하기 - 예외를 처리하는 방법 : try-catch문, 예외 선언하기 - 메서드가 호출시 발생가능한 예외를 호출하는 쪽에 알리는 것 참고 : 예외를 발생시키는 키워드 throw와 예외를 메서드에 선언할 때 쓰이는 throws를 잘 구별하자 ▶ 오버라이딩 1. 선언부 일치 2. 접근제어자 좁게 X 3. 조상보다 많은 예외 X static void startInstall() throws SpaceException, MemoryException { if(!enoughSpace()) throw new SpaceException("설치할 공간이 부족합니다."); if(!enoughSpace()) throw new MemoryException("메모리가 부족합니다."); }
Ch8-7_printStackTrace()와 getMessage()
2021. 12. 20. 15:04
JAVA/Chapter8
ch8-7 printStackTrace()와 getMessage() printStackTrace() : 예외 발생 당시의 호출스택(Call Stack)에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다. getMessage() : 발생한 예외 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.
Ch8-4_예외 처리하기(try-catch문)
2021. 12. 17. 12:41
JAVA/Chapter8
Ch8-4_예외 처리하기(try-catch문) try { // 예외가 발생할 가능성이 있는 문장들을 넣는다. } catch (Exception1 e1) { // Exception1이 발생했을 경우, 이를 처리하기 위한 문장을 적는다. } catch (Exception2 e2) { // Exception2이 발생했을 경우, 이를 처리하기 위한 문장을 적는다. } catch (ExceptionN eN) { // ExceptionN이 발생했을 경우, 이를 처리하기 위한 문장을 적는다. } Ch8-5_try-catch문에서의 흐름 A. try블럭 내에서 예외가 발생한 경우. 발생한 예외와 일치하는 catch블럭이 있는지 확인한다. 일치하는 catch블럭을 찾게 되면, 그 catch블럭 내의 문자들을 수행하고 전..

Ch8-1_프로그램 오류
2021. 12. 17. 11:40
JAVA/Chapter8
Ch8-1_프로그램 오류 1. 컴파일 에러(compile-time error) : 컴파일할 때 발생하는 에러 2. 런타임 에러(runtime error) : 실행할 때 발생하는 에러 3. 논리적 에러(logical error : 작성 의도와 다르게 동작 ▶ javac.exe : 자바 컴파일러 구문체크 번역 최적화 ▶ Java의 런타임 에러 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 ▶ 예외처리(exception handling)의 정의와 목적 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지..