이전 섹션에서 언급한 런타임 예외 및 비런타임 예외 외에도 다음과 같은 일반적인 예외가 많이 있습니다.
산술 예외: ArithmeticExecption
NullPointerException: NullPointerException
클래스 변환 예외: ClassCastException
음수 배열 아래 첨자 예외: NegativeArrayException
배열 첨자 범위를 벗어난 예외: IndexOutOfBoundsException
보안 원칙을 위반하는 예외: SecurityException
접근 권한 예외: IllegalAccessException
파일 끝 예외: EOFException
파일을 찾을 수 없음 예외: FileNotFoundException
문자열을 숫자로 변환하는 예외: NumberFormatException
작업 데이터베이스 예외: SQLException
입출력 예외: IOException
메소드를 찾을 수 없음 예외: NoSuchMethodException
…
이 섹션에서는 주로 다음과 같은 5가지 이상 현상을 소개합니다.
프로그래밍할 때에도 Null 포인터 예외가 자주 발생합니다. 이 예외가 발생한다는 것은 "프로그램이 Null 포인터를 발견했습니다"를 의미합니다. 쉽게 말하면 초기화되지 않은 개체 또는 존재하지 않는 개체가 호출될 때 발생한다는 의미입니다. 호출 배열 작업에서 프로그래밍을 막 배우기 시작한 사람들이 흔히 범하는 실수는 배열 초기화와 배열 요소 초기화를 혼동하는 것입니다.
배열의 초기화는 배열에 필요한 공간을 할당하는 것으로, 초기화된 배열의 요소들은 인스턴스화되지 않고 여전히 비어 있으므로 호출하려면 각 요소를 초기화해야 합니다.
다음과 같은 데이터 유형 변환 오류:
문자열 온도=abc;
int temp로 설정하면 타입이 다르기 때문에 에러가 나지만, object temp로 설정하면 object가 부모 클래스이므로 괜찮습니다.
배열을 연산할 때 이 예외가 자주 발생합니다. 예외는 "배열 첨자가 범위를 벗어났습니다"를 의미합니다. 현재 프로그램의 대부분은 배열에 대한 연산을 수행하므로 배열을 호출할 때 첨자가 범위를 초과하는지 주의 깊게 확인해야 합니다. 배열의 범위는? 일반적으로 상수를 직접 호출할 때는 이러한 오류가 발생할 가능성이 적지만, 변수를 호출할 때는 이러한 오류가 발생하기 쉽습니다. 또 다른 경우에는 프로그램에서 정의한 배열의 길이가 특정 방법에 따라 결정됩니다. 이 때 이러한 예외를 방지하려면 배열의 길이를 확인하는 것이 가장 좋습니다.
이 예외에 대한 설명은 "접근 권한 없음"입니다. 이 예외는 응용 프로그램에서 클래스를 호출하려고 하지만 현재 메서드에 해당 클래스에 대한 액세스 권한이 없을 때 발생합니다. 프로그램에서 패키지를 사용할 때 이 예외에 유의하세요.
이 예외는 일반적으로 파일을 읽고 쓸 때 발생합니다. 예를 들어, 디스크에서 자신이 작성한 프로그램으로 파일을 읽으려는 경우 해당 파일이 하드 디스크에 존재하지 않으면 Java 가상 머신은 이 예외를 보고합니다.