Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

Full-Stack 개발자가 되려는 작은 개발자의 블로그

객체 지향 실습 4 본문

강의 정리/Java

객체 지향 실습 4

jhjin 2020. 4. 7. 16:16

예외처리(Exception Handling)

Error(오류)

    - 프로그램이 실행 될 수 없는 오류.

    - 프로그램이 실행중에 처리 할 수 없음.

 

Excetpion(예외사항)

    - 프로그램이 실행 중에 발생하는 오류

    - 수습 코드를 통해 실행 중 해결 할 수 있는 오류

 

    ※ 예외 처리란 수습 코드를 작성하여 사전에 예외로 인한 프로그램의 비정상적인 종료를 미연에 방지하는 작업

 

    주요 예외 사항

        - ArithmeticException : 수학적으로 해결 할 수 없는 예외

        - NullPointerException : 인스턴스가 생성되지 않았다.

        - ArrayIndexOutOfBoundsException : 배열 범위 밖을 사용 할 때

        - NumberFormatException : 숫자로 변환 할 수 없음.

        - IOException : 입출력 제외(파일 입출력 포함)

        - SQLException : DB 처리 관련 예외

 

    예외 사항의 처리

        - try, catch, finally 구문으로 처리

        - try(시도하다) 

            1. 에외사항이 발생 될 수 잇는(가정) 코드를 작성하는 부분

            2. 정상적으로 처리 될 수도 있으며, 코드를 작성 할 때는 잘 처리 될 것으로 생각하며 작성.

        - catch(예외사항을 잡아서 처리)

            1. try 부분에서 예외사항이 발생되면 처리해야 할 작업 코드를 작성하는 부분.

            2. catch 부분은 예외사항에 따라 여러개가 존재 할 수 있음.

        - finally(반드시 마지막에 실행)

            1. 생략 할 수 있는 부분(예외가 있어도, 없어도)

            2. 마지막에 실행되어야 하는 코드를 작성하는 부분.

            3. 마지막에 실행 할 작업이 없으면 작성하지 않아도 된다.

try{
	.
    .
    .
    실행문
    .
    .
    .
}catch(Exception e){
	예외 처리
}finally{
	공통 실행문
}

    처리 순서

        1. 정상적으로 처리 될 경우

            ▶ try > finally

        2. 예외가 발생하는 경우

            ▶ try > catch > finally

 

    예외처리 방식

        1. 메소드 안에서 자체적으로 처리

            ▶ try~catch 구문 사용

        2. 호출한 메소드에서 처리하도록 예외를 넘김

            ▶ 반환형 메소드() throws 예외사항 { . . . }

            ▶ 메소드를 호출한 위치에 try, catch를 사용하여 예외를 처리.

 

    Multi-catch

        - catch부분은 여러 개를 작성 할 수 있음

try {
	//숫자 입력 처리
	//나눗셈 처리
} catch(NumberFormatException ne) { 	//(1)
	.... //숫자를 입력해야 합니다.
} catch(ArithmeticException ae) {   	//(2)
	.... //0으로 나눌 수 없습니다.
} catch(Exception e) { 				//(3)
	.... //그 외의 예외사항 처리
}

         ▶ 마지막에 큰 범위의 예외사항이 와야한다.

 

    나만의 Exception 클래스 만들기

        1. Exception 클래스를 상속하여 새로운 클래스(MyException) 작성

        2. 작성한 새로운 클래스로 인스턴스를 생성

        3. 생성 시 메세지, 에러코드 등 값 추가 throws 뒤에 클래스 이름을 작성

        4. 메소드를 호출하는 곳에서 새로운 클래스로 catch 처리. catch 부분에서 새로운 클래스의 정보를 출력 및 처리

class MyException extends Exception{
	//에러 코드 저장 필드
	private final int ERR_CODE;
	public MyException(String msg,int eCode) {
		super(msg);
		ERR_CODE=eCode;
	}

	public int getErrCode() {
		return ERR_CODE;
	}
	
}
public class ExceptionTest2 {
	static void makeException() throws MyException{
		//특정 문구를 가진 예외 인스턴스 만들기
		MyException myexp=new MyException("페이지를 찾을 수 없습니다.",404);
		//만든 예외 던지기
		throw myexp;
	}
	public static void main(String[] args) {
		try {
			makeException();
		} catch (MyException e) {
			System.out.println(e.getMessage());
			System.out.println("에러코드 " +e.getErrCode());
		}
	}
}

'강의 정리 > Java' 카테고리의 다른 글

학교 인적 관리 프로그램(SchoolPrj)  (0) 2020.04.18
객체지향 실습5  (0) 2020.04.18
객체 지향 실습2  (0) 2020.04.01
물품 관리 프로그램(Homeminus)  (1) 2020.04.01
가계부 프로그램  (0) 2020.03.26
Comments