Notice
Recent Posts
Recent Comments
Link
YTCW
java 예외처리, exception 본문
자바 예외 처리
예외 (exception)
프로그램 실행 중에 발생할 수 있는 예기치 못한 문제나 조건
예외처리
예외가 발생할 경우 프로그램이 중단되지 않고
대응하여 정상적인 흐름을 유지하는 프로그래밍 기법이다.
자바 예외 클래스
Throwable 모든 예외와 오류의 최상위 클래스
모든 예외 클래스는 해당 클래스를 상속받음
예외와 관련된 메세지 처리방법에 대한 예시 정보를 포함
1) exception
개발자는 예외 처리만 할 수 있다.
예외 처리를 통해 개발자가 처리할 수 있는 문제들을 정의
1-1) Checked Execiption
컴파일 시점에 체크되는 예외 (작성중)
개발자가 반드시 처리 해줘야한다.
컴파일러는 해당 예외가 처리되어 있지 않을 경우 오류를 발생시킨다.
1-2) Unchecked (Runtime) Exciption
런타임 시점에 체크되는 예외 (실행시작하면)
개발자의 실수로 발생
컴파일러가 강제하지않는다 ( 체크하지 않는다)
2) error
시스템 레벨에서 발생하는 예외, 개발자가 처리할 수 없다.
(코드가 아닌 외부에서)
메모리 부족이라던지 네트워크 연결 등
자바 예외 처리 방법
try - catch 블럭, throws 키워드, 사용자 정의 예외
try - catch 기본형태
try {
// 예외가 발생할 수 있는 코드
} catch (ExceptionType e) {
// 예외 발생 시 실행할 코드
} catch (ExceptionType e) {
// 예외 발생 시 실행할 코드
}
// catch 블록 : 특정 예외 타입이 발생했을 때 실행될 코드를 정의
// 다중 catch 블록으로 사용 가능 (여러 예외 처리 가능)
package chapter10;
public class Exception01 {
public static void main(String[] args) {
try {
// 런타임 (언체크) 예외
int division = 10 / 0;
// 수를 0으로 나눌 수 없다.
} catch (Exception e) { // exception (자동형변환) 타입
// try 블록 내에서 발생하는 예외를 () 소괄호 내에서 매개변수로 전달받아
// {} 실행문에서 처리
// 매개변수의 형식 : 타입 변수명
System.out.println("0으로 나눌 수 없습니다.");
}
System.out.println("정상적인 실행입니다.");
System.out.println("====================");
try {
int division = 10 / 0;
int[] numbers = new int[5];
numbers[10] = 50;
// ArithmeticException 발생
String text = null;
System.out.println(text.length());
// 자료형중에 기본자료형, 참조 자료형이 있는데
// String 은 참조 자료형이라서 비어있는 값이면 null 이 된다.
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("배열 인덱스 초과 오류 발생" + e.getMessage());
} catch (NullPointerException e) {
System.out.println("null을 계산할 경우 오류 발생" + e.getMessage());
} catch (Exception e) {
System.out.println("초과 오류 발생" + e.getMessage());
} finally {
System.out.println("finally 블록 실행");
// 예외 발생 여부와 상관없이 항상 실행되는 코드 블록
}
// throw 블록
// 예외를 직접 발생시키는데 사용한다.
// 특정 조건에서 예외를 발생 시킬 경우 사용
// 주로 조건문과 함께 사용
int age = -10;
try {
if (age < 0) {
// throw new 예외타입( "예외 메시지 작성" );
// 예외 메세지는 예외 객체의 .getMessage()를 통해 출력된다.
throw new Exception ("나이는 음수가 될 수 없습니다.");
}
} catch (Exception e) {
System.out.println(e.getMessage());
// 나이는 음수가 될 수 없습니다.
}
System.out.println("반드시 실행되어야 할 코드");
}
}
'java' 카테고리의 다른 글
java.util package, calendar (0) | 2024.09.09 |
---|---|
java.lang (0) | 2024.09.09 |
java 인터페이스, interface (0) | 2024.09.09 |
java 추상, abstract (0) | 2024.09.09 |
java 다형성 (0) | 2024.09.09 |