stack overflow → 에러 모은 사이트??

예외(Exception)

1) 일반 예외(exception)

    - 컴파일러 체크 예외라고 함

    - 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 소스를 컴파일하는 과정에서 해당예외 처리 코드가 있는지 검사합니다. 만약 예외 처리 코드가 없다면 컴파일 오류가 발생

2) 실행 예외(runtime exception)

     - 컴파일러 넌 체크 예외라고 함

     - 실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일하는 과정에서 예외 처리 코드가 있는지 검사하지 않는다.  

** 자바는 예외를 클래스로 관리

→ JVM은 프로그램을 실행하는 ㄱ도중에 예외가 발생하면 해당 예외 클래스로 객체를 생성합니다. 그리고 나서 예외 처리코드에서 예외 객체를 이용할 수 있도록 해줍니다. 모든 예외 클래스는

java.lang.Exception 클래스를 상속받습니다.

public class ExceptionExample {

	public static void main(String[] args) {
		// 일반 예외(Exception) -> 사전에 에러가 보이는 거 
		Class.forName("java.lang.String");
	   
		// 실행 예외(Runtime Exception)  ->실행해 봐야지 에러가 뜨는지 안다
		method(null); // -> NullPointerException
	}
	private static void method(String name) {	
		System.out.println(name.contains("홍"));
	}
}

결과 :
Exception in thread "main" java.lang.NullPointerException
	at chapter09.ExceptionExample.method(ExceptionExample.java:14)
	at chapter09.ExceptionExample.main(ExceptionExample.java:10)

(실행예외)