try-catch
: 필수forName(String className) throws ClassNotFoundException()
try-catch
: 옵션NullPointerException과 같이 컴파일 시 발생하는 예외는 무조건 잡아야 한다.
try {
} catch (발생가능한예외타입 변수){
}
try {
} catch (발생가능한예외타입 변수){
} finally{
// 100% 발생 코드블록
주로 자원 반환용으로 사용된다.
}
접근제한자 반환타입 메소드([...]) throws ~ Exception{
}
import lombok.Builder;
import lombok.Getter;
/**
* 상황에 따라서 개발자가 예외를 발생하고 처리하는 코드
*
*
* id / pwd = fisa, 11값만 유효하다고 가정하자 무효한 경우엔 예외를 발생 시킨다 / 유효한 경우엔 "안녕하세요 누구님 " 출력
*
*/
@Builder
@Getter
class Member {
private String id;
private String pwd;
// 일반 생성자를 대체해서 빌더를 사용해 객체 생성, 초기화 진행
public static Member createMember(String id, String pwd) {
return Member.builder()
.id(id)
.pwd(pwd)
.build();
}
//원래 데이터베이스가 연결된 경우라면 이 경우엔 데이터베이스에서 가져온 회원 정보와 비교해서 작성해야 한다.
public boolean isMemberIdPwd(Member member) {
if (!member.getId().equals("fisa") || !member.getPwd().equals("11")) {
throw new RuntimeException();
}
System.out.printf("%s님 반갑습니다.\n", member.getId());
return true;
}
}
public class ExceptionTest2 {
public static void main(String[] args) {
Member member = Member.createMember("fisa", "11");
member.isMemberIdPwd(member);
System.out.println("============================================");
Member notFisaMember = Member.createMember("ffisa", "11");
member.isMemberIdPwd(notFisaMember);
}
}
결과값 출력
fisa님 반갑습니다.
- Exception in thread "main" java.lang.RuntimeException
- at step03.exception.Member.isMemberIdPwd(ExceptionTest2.java:32)
- at step03.exception.ExceptionTest2.main(ExceptionTest2.java:55)