카테고리 없음
JAVA쪼렙탈출기: 예외 처리 (Exception Handling)
Yuniverse.
2023. 6. 17. 12:24
Python과 SQL만 써본 주니어 분석가. '개발공부를 해보고 싶다', '개발도 공부하긴 해야하는데...'는 말만 한지 어연 1년이 넘어가는 중, 이대로는 안되겠다 싶어 냅다 JAVA 수업 수강에 카드를 긁었다. 쪼렙 중의 쪼렙이 JAVA를 배워나가는 여정을 "JAVA 쪼렙 탈출기"라는 시리즈로 남길 예정이다.
예외 처리 ( Exception Handling )
프로그램 실행 중에 문제가 발생했을 때, 문제 내용을 처리하는 것
try {
문제가 발생할 가능성이 있는 지역 설정
} catch ( 예외 타입 ) {
예외처리 코드
> catch 안의 예외 탕비으로 기본자료형을 적용할 수 없다.
} finally {
예외 처리와 상관없이 무조건 실행
( finally는 try, catch와 달리 필수요소 X )
}
public class Ex01Exception {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int candy = 0;
int people = 0;
try {
System.out.print("사탕수 입력 > ");
candy = scanner.nextInt();
System.out.print("사람수 입력 > ");
people = scanner.nextInt();
int div = candy / people;
int mod = candy % people;
System.out.println("한 사람당 사탕 수 : " + div);
System.out.println("남은 사탕 수 : " + mod);
} catch(Exception e) {
// System.err.println("사람수가 0이면 안 돼요.");
// e.printStackTrace(); // 에러에 대한 상세한 내용을 알려준다. 보통 이걸로 처리한다.
// System.out.println(e.toString()); // printStackTace()보다 조금 덜 상세한 내용
System.out.println(e.getMessage()); // 간단한 내용
} finally {
System.out.println("- End -");
}
}
}
throws
- 예외 전가
- 해당 메서드 진행 중에 에러가 발생하면 에러를 전담하는 코드로 보내버린다. ( 에러 직접 처리 X )
public class Calc {
public static int div(int a, int b) throws Exception {
return a / b;
}
}
public class Ex03Throws {
public static void main(String[] args) {
try {
int res = Calc.div(10, 0);
System.out.println("res : " + res);
} catch (Exception e) {
System.out.println("오류 발생");
}
}
}
[결과값]
오류 발생