프로그램 오류

규칙
컴파일 에러(compile-time error) : 컴파일 할 때 발생하는 에러
런타임 에러(runtime error) : 실행 할 때 발생하는 에러
논리적 에러(logical error) : 작성의도와 다르게 동작

※ 자바컴파일러 ( javac.exe)  : 이클립스가 대신해주고있음 

하는일 : 구문체크, 번역, 최적화


컴파일에러

 

예외처리하기 try - catch문  (미약한오류 Exception을 살려보자)

규칙
1. 예외가 발생하면 이를 처리할 catch블럭을 찾아 내려감
2. 일차하는 catch블럭이 없으면, 예외는 처리 안됨
3. Exception이 선언된 catch블럭은 모든 예외처리(마지막 catch블럭)

 

 

예시

 


printStackTrace()와 getMessage()


멀티 catch블럭

규칙
1. 내용이 같은 catch블럭을 하나로 합친 것 ( JDK 1.7 부터 )
2. 코드 중복제거효과

주의사항. 

 

주의사항 1.

상속관계일 때,  멀티catch블럭을 사용 불가.  (부모에게만 예외처리해둬도 동일한 결과임.)

주의사항 2.

멀티catch에서 참조변수로 사용가능한건 공통된 부분만 사용가능


예외 발생시키기


예외의 종류 ( checked예외, unchecked예외 )

규칙
1. checked예외 : 컴파일러가 예외처리 여부를 체크 (예외 처리 필수)                   ←  Exception과 자손
    ㄴ  컴파일부터 막힘 
2. unchecked예외 : 컴파일러가 예외 처리 여부를 체크안함 ( 예외 처리 선택 )     ←  RuntimeException과 자손
    ㄴ  컴파일은 되나, 실행시 런타임 에러발생


메서드에 예외 선언하기(처리하기)

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


finally 블럭

규칙
1. 예외 발생여부와 관계없이 수행되어야 하는 코드를 넣는다. ( finally는 무조건실행됨 )


사용자 정의 예외 만들기

규칙
1. 우리가 직접 예외 클래스를 정의할 수 있다.
2. 조상은 Exception(예외처리필수)과 RuntimeException(예외처리선택) 중에서 선택

 


예외 되던지기 (exception re-throwing)

규칙 ( 분담처리시 사용 )
1. 예외를 처리한 후에 다시 예외를 발생시키는 것
2. 호출한 메서드와 호출된 메서드 양쪽 모두에서 예외처리하는 것


연결된 예외(chaned exception)

규칙
1. 한예외가 다른 예외를 발생시킬수 있다.
2. 예외 A가 예외 B를 발생시키면, A는 B의 원인 예외 (cause exception)
[이유1]. 여러 예외를 하나로 묶어서 다루기 위해서 사용
[이유2]. checked예외를 unchecked예외로 변경하려 할 때 사용

 


출처 : 남궁성의 정석코딩

https://www.youtube.com/@MasterNKS

+ Recent posts