Exception : 예외 처리
: 실행 시 발생할 수 있는 예외를 처리하여 정상 처리로 유지시키는 기능
1. 구조
- try-catch-finally (finally는 선택사용)
- .printStackTrace(); 오류(예외)가 어디에서 발생하는지 알려주는 역할
double res =0;
int num = 10;
int num1 =0;
try {
//예외가 발생할 수 있는 구문
int sum=num1 + num;
System.out.println("sum => " + sum);
res = num / num1;
System.out.println(res); //오류
} catch (Exception e) {
//예외가 발생할 경우 처리하는 실행문
System.out.println("0으로 나누었습니다. Exception 발생!");
}finally {
//try구문과 반드시 실행되어야하는 구문이 있을 경우 사용 (없으면x)
System.out.println("꼭 처리되어야하는 구문");
System.out.println(e.getMessage());
e.printStackTrace();
//printStackTrace(); : 오류(예외)가 어디에서 발생하는지 알려주는 역할
// java.lang.RuntimeException: num2는 0이 될 수 없습니다.
//at day12.Exception02.calc1(Exception02.java:79)
//at day12.Exception02.main(Exception02.java:15)
}
System.out.println("종료");
2. 자주 발생하는 예외
public class Exception03 {
public static void main(String[] args) {
/* 자주 발생하는 예외 코드들
*
*
* */
//1. ArithmenticException : 0으로 나누었을 경우 발생
double a = 1/0;
System.out.println(a);
//2. ArrayIndexOutOfBoundsException : 배열의 index가 범위를 벗어난 경우
int arr[] = new int[5];
for(int i=0; i<=arr.length; i++) {
System.out.println(arr[i]);
}
//3. ClassCastException : 클래스의 다운 캐스팅이 잘못되었을 경우 (형변환 오류)
P p = new P();
//4. NullPointerException : 객체가 생성되지 않은 경우
C c = null;
c.print();
}
}
class P{
int num = 10;
}
class C extends P{
int num1 = 100;
void print() {
System.out.println(num1);
}
}
'JAVA > java' 카테고리의 다른 글
[JAVA] RegularExpression 정규표현식 (0) | 2023.09.12 |
---|---|
[JAVA] 제네릭 : 결정되지 않은 파라미터를 처리 (0) | 2023.09.12 |
[JAVA] 내부 class, 익명 class (0) | 2023.09.12 |
[JAVA] BigDecimal 정확한 실수 표현 (0) | 2023.03.26 |
[JAVA] 추상메서드 / 추상클래스 (0) | 2023.03.26 |