1. 프로그램 오류 - 크게 2종류로 나뉨
1) 컴파일 에러 : 컴파일시 발생
2) 런타임 에러 : 실행시 발생
2. 에러와 예외의 정의
1) 에러(Error) : 프로그램에서 수습될 수 없는 심각한 오류
2) 예외(Exception) : 프로그램에서 수습될 수 있는 다소 미약한 오류
3. 예외 처리 방법
: try - catch 구문을 활용
4. 예외 발생시키기
1) new 연산자를 이용해 발생시키려는 예외 클래스 객체를 만듦
2) throw e를 이용해 예외 발생시킴
# 아래와 같이 발생할 수 있다. 참고로 1번 처럼 객체를 만든후 throw를 따로 해줄 수 있고,
2번처럼 한줄에 객체 생성 및 throw까지 할 수 있음
5. 예외 클래스의 계층구조
1) RuntimeException 클래스들 : 프로그래머의 실수로 발생하는 예외
2) Exception 클래스들 : 외적인 요인에 의해 발생하는 예외
6. finally 블럭
: finally내용은 예외 발생 여부와 관계없이 실행된다.
1) 예외 발생시 : try - catch - finally 순으로 실행
2) 예외 미발생시 : try - finally 순으로 실행
구문 ex)
try{
//예외 발생할 가능성이 있는 문장을 넣음
}catch(Exception ex){
//예외처리를 위한 문장 넣음
} finally{
//예외 발생에 관계없이 항상 수행되어야 하는 문장들을 넣음
}
7. catch 추가 내용
1) Exception 참조 변수
: printStackTrace() : 예외발생시 호출스택(Call Stack)에 있던 메서드 정보와 예외 메시지를 화면에 출력
: getMessage(): 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있음
2) 메소드에 예외 선언 가능
: 메소드에 예외 선언을 하면 예외를 호출한 메서드로 전달함 (호출한 메서드에서 예외처리를 해야할 때 사용)
ex)
public void testMethod() throws Exception1, Exception2{
//메서드 내용
}
8. Custom 예외 만들기
1) 예외클래스를 상속받아 새로운 예외클래스 정의 가능
'IT이야기 > JAVA' 카테고리의 다른 글
[JAVA Regex기본] 문자열 한글, 영문자, 숫자, 특수문자 구분하는 방법 (0) | 2021.10.09 |
---|---|
JAVA의 기본 (0) | 2017.07.25 |
[DURGA 코딩 인터뷰] public static void main() 자바 1.7부터의 특징 (0) | 2016.04.24 |
[DURGA 코딩인터뷰] public static void main() 상속/오버로딩/숨김/오버라이딩? (0) | 2016.04.24 |
[자바의 정석] Chapter1. 자바 기본지식 (0) | 2016.04.24 |