충분히 쌓여가는
checked 예외, unchecked 예외 본문
checked 예외
컴파일러가 예외처리 여부를 체크(예외 처리 필수)
예외처리가 필수인데 하지않아서 에러 발생(컴파일조차 안됨)
try-catch문이 없다
Exception이 checked 예외(Exception 클래스와 그 자손, 예외처리 필수)
class ExceptionTest {
public static void main(String args[]) {
throw new Exception(); // Exception을 고의로 발생시킨다
}
}
java: unreported exception java.lang.Exception; must be caught or declared to be thrown
에러 없애기(try-catch문)
Exception과 그 자손은 반드시 예외처리 필수
class ExceptionTest {
public static void main(String args[]) {
try { // Exception과 그 자손은 반드시 예외처리 필수
throw new Exception();
} catch (Exception e) {
}
}
}
unchecked 예외
컴파일러가 예외 처리 여부를 체크 안함(예외 처리 선택)
RuntimeException(): 예외처리 선택
try-catch문이 없어도 컴파일 OK(예외처리가 선택이기 때문)
하지만 실행하면 RunTimeException 발생 => 비정상 종료
class ExceptionTest {
public static void main(String args[]) {
throw new RuntimeException(); // RuntimeException을 고의로 발생시킨다
}
}
Exception in thread "main" java.lang.RuntimeException
at ExceptionTest.main(ExceptionTest.java:3)
실행 시 에러 없애기(try-catch문)
RuntimeException과 그 자손은 예외처리를 해주지 않아도 컴파일이 되긴함
실행시 에러제거하고 싶은 경우 try-catch문 사용
class ExceptionTest {
public static void main(String args[]) {
try {
throw new RuntimeException();
} catch (Exception e) {
}
}
}
예를 들어 0으로 나누거나(ArithmeticException), 배열 범위를 벗어나는(IndexOutOfBoundsException)을 예외 처리가 선택이 아니라면 거의 모든 코드에 예외처리가 있어야한다,
하지만 아니기 때문에 코드를 작성할 때 주의해서 작성해야한다
'Java > JAVA2' 카테고리의 다른 글
연결된 예외(chained exception) (0) | 2023.06.25 |
---|---|
사용자 정의 예외 만들기, 예외 되던지기 (0) | 2023.06.24 |
예외 발생시키기 (0) | 2023.06.22 |
멀티 catch 블럭 (0) | 2023.06.22 |
printStackTrace(), getMessage() (0) | 2023.06.22 |