1. 오류(Error)
3. 실행 예외
String str = null; System.out.println(data.toString());
int[] array ={1,2};
System.out.println(array[2]);
String str = "a123";
int value = Integer.parsInt(str);
//Animal 클래스는 Dog와 Cat의 부모클래스
Animal animal = new Dog();
Dog dog = (dog) animal; // 문제 없음
Cat cat = (cat) animal; // 예외 발생
4. 예외처리
try{
//예외 발생 가능성이 있는 문장
}catch(예외클래스 e){
//예외 처리
} finally {
//항상 실행 ;
}
try{
//예외 발생 가능성이 있는 문장
}catch(NullPointerException e){
//예외 처리
} catch(Exception e){
//예외 처리
}
//NullPointerException < Exception
//=======================================
try{
//예외 발생 가능성이 있는 문장
}catch(NullPointerException | NumberFormatException e){
//이런 식으로 or를 통해 같이 적을 수도 있다.
}
public class ThrowsExam {
public static void main(String[] args) {
try {
findClass();
} catch (ClassNotFoundException e) {
System.out.println("클래스가 존재하지 않음");
}
}
public static void findClass() throws ClassNotFoundException {
Class c = Class.forName("java.lang.String2");
//예외를 메소드 호출부인 findClass()로 떠넘기기
}
}
예외 발생시키기
예외정보 얻기