예외의 개념 - 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류
예외의 종류
1. 일반 예외(Exception) == 컴파일러 체크 예외
2. 실행 예외(Runtime Exception)
실행예외는 자바 컴파일러가 체크를 하지 않기 때문에 오로지 개발자의 경험에 의해서 예외처리 코드를 삽입해야한다.
대표적인 몇가지를 알아보겠다.
2.1 NullPointerException
-> java.lang.NullPointerException일 것이다.
이말은 객체 참조가 없는 상태이다.
-> 객체가 없는 상태에서 객체를 사용하려 했으니 예외가 발생하는 것이다.
========================================================================
간단한 코드
public class NullPointerExceptionExample {
public static void main(String[] args) {
String data = null;//data가 null이라는 값을 가지고 있기 때문에 String객체를 참조하고 있지 않다.
System.out.println(data.toString());//하지만 여기선 toString() 메소드를 호출하고 있다.이래서 발생한다.
}
}
========================================================================
2.2 ArrayIndexOutOfBoundsException
-> 배열에서 인덱스 범위를 초과하여 사용할 경우, 실행 예외엔 java.lang.ArrayIndexOutOf-BoundsException이 발생한다.
이말은 배열의 길이를 초과한상태에서도 사용할려고 해서 오류가 발생하는 것이다.
======================================================================
간단한 코드
public class ArrayIndexOutOfBoundsExceptionExample {
public static void main(String[] args) {
String data1 = args[0];
String data2 = args[1];
System.out.println("args[0]: "+data1);//여기서 에러가 뜨는데 두개의 실행 매개값을 주지않았기 때문에 args[0]하고 args[1]을 사용할수 없다는 것이다.
//Run->Run Configurations]를 선택후 , Arguments탭의 Program arguments를 입력하면 예외가 발생하지 않는다.
System.out.println("args[1]: "+data2);
}
}
=============================================================================
2.3 NumberFormatException
-> 문자열로 되어있는 데이터를 숫자로 변경하는 경우가 자주 발생한다.
반환 타입 |
메소드명(매개 변수) |
설명 |
int |
Integer.parseInt(String s) |
주어진 문자열을 정수로 변환해서 리턴 |
double | Double.parseDouble(String s) | 주어진 문자열을 실수로 변환해서 리턴 |
2.4 ClassCastException
-> 타입변환(Casting)은 상위 클래스와 하위 클래스 간에 발생하고 구현 클래스와 인터페이스 간에도 발생한다. 이러한 관계가 아니라면 클래스는 다른 클래스로 타입 변환할 수 없다. 억지로 타입 변환을 시도할 경우 ClassCastException이 발생한다.
'IT일반과목 > java' 카테고리의 다른 글
자바의 개념 정리(07.02~07.27) (0) | 2018.07.27 |
---|---|
예외처리2 try-catch (0) | 2018.07.26 |
포인트관리프로그램(다형성) (0) | 2018.07.26 |
학생에 대한것 그냥 만들기 (0) | 2018.07.26 |
포인트 관리 프로그램(인터페이스를 만든후 그걸토대로만들기) (0) | 2018.07.26 |