이것이 자바다/JAVA2
checked 예외, unchecked 예외
빌드이너프
2023. 6. 22. 22:32
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)을 예외 처리가 선택이 아니라면 거의 모든 코드에 예외처리가 있어야한다,
하지만 아니기 때문에 코드를 작성할 때 주의해서 작성해야한다
반응형