본문 바로가기
인천일보아카데미/- 학습일지

[학습일지]JAVA교육일지 30일차

by w1z 2022. 6. 9.

1. 제네릭 (Generis)

2. 예외 처리 (Exception Handling)


1. 제네릭 (Generics)

[ 정의 ]
- 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크(compile-time type check)를 해주는 기능

 

[ 장점 ]
1. 타입 안정성을 제공한다.
2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다.

 

[ 제네릭 클래스 선언법]

class Box<T> { //지네릭 타입 T를 선언
	T item;
    
    void setItem(T item) { this.item = item; }
    T getItem() { return item;}
}

// T: 타입변수 -> 데이터를 저장하는 용도가 아니라, 자료형 자체를 저장하는 용도
Box<String> b = new Box<String>();  //타입 T대신, 실제 타입지정
b.setItem("ABC"); //String타입으로 가능
b.setItem(new Object()); //Error발생, String이외의 타입은 지정불가

 

2. 예외처리 (Exception handling)

[ 정의와 목적 ]

 - 정의 : 프로그램 실행 시 발생할 수 있는 예외에 대비한 코드를 작성하는 것

 - 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것

 

[ 예외 처리 try - catch문 ]

try {
	//예외가 발생할 가능성이 있는 코드(문장)
} catch (Exception1 e1) {
	// Exception1이 발생했을 경우, 이를 처리하기 위한 코드(문장)
} catch (Exception2 e2) {
	// Exception2이 발생했을 경우, 이를 처리하기 위한 코드(문장)
} catch (Exception3 e3) {
	// Exception3이 발생했을 경우, 이를 처리하기 위한 코드(문장)

 1. 1개의 try 블럭 다음에는 여러 종류의 예외를 처리할 수 있도록 1개 이상의 catch 블럭이 온다.

 2. 발생한 예외의 종류와 일치하는 단 한개의 catch 블럭만 수행하게 된다. (그 이후는 실행 안하고 건너뜀)

 3. 발생한 예외의 종류와 일치하는 catch 블럭이 없으면 예외는 처리되지 않는다.

 4. try 블럭에서 실행 중 예외가 발생하면 그 이후 try 코드(문장)은 건너뛰며 예외 종류와 일치하는 catch 블럭 수행된다.

 

[ 예외 발생시키기 ]

//1. 먼저, 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음
Exception e = new Exception("고의 발생");

//2. 키워드 throw를 이용해서 예외를 발생시킨다.
throw e;

MEMO>

 

# 이번주는 코드를 따라서 작성하는 것보다, 문법과 정의같은 것을 이해하면서 코드를 파악하는것이 중요하다!