비정상은 문자 그대로 뜻밖이라는 뜻입니다. 코드 수준에서 이해하기 위해 현재 메서드나 범위가 계속 실행되는 것을 방지합니다. Java에서는 예외가 객체로 처리되며 해당 기본 클래스는 Throwable입니다.
Java의 여러 일반적인 예외:
1 Null 포인터 예외 클래스: NullPointerException
알 수 없는 호출 초기화됨 객체 또는 존재하지 않는 객체. 이미지 생성, 배열 호출 등의 작업에서 자주 나타나는데, 예를 들어 이미지가 초기화되지 않았거나, 이미지 생성 시 경로가 잘못된 경우 등이 있습니다. 배열 작업 중에 널 포인터가 나타나 배열 초기화와 배열 요소 초기화를 혼동합니다.
배열의 초기화는 배열에 필요한 공간을 할당하는 것이며, 초기화된 배열의 요소는 인스턴스화되지 않고 여전히 비어 있으므로 각 요소를 초기화해야 합니다(호출되는 경우) ).
2. 데이터 유형 변환 예외: java.lang.ClassCastException
객체에 대해 강제로 다운캐스트를 시도할 때 이 예외는 다음 코드에 표시된 것처럼 개체가 변환 가능하지도 않고 해당 하위 클래스의 인스턴스로 변환될 수도 없는 경우 발생합니다.
Object obj = new Integer(0); String str = obj;
3. 액세스 권한 없음: java.lang.IllegalAccessException
애플리케이션이 클래스를 호출하려고 하지만 현재 메서드가 호출하지 않는 경우 존재하지 않음 이 예외는 이 클래스에 액세스할 때 발생합니다. 프로그램에서 Package를 사용할 때 이 예외에 주의하시기 바랍니다.
4. 메소드 매개변수 오류: java.lang.IllegalArgumentException
예: g.setColor(int red,int green,int blue ) 이 메소드의 세 값 중 하나라도 255를 초과하면 이런 예외가 발생하게 되므로, 일단 이 예외를 발견했다면, 우리가 해야 할 일은 메소드 호출 시 전달하는 매개변수에 오류가 있는지 빠르게 확인하는 것입니다. .
5. 배열 첨자 범위를 벗어난 예외: java.lang.IndexOutOfBoundsException
호출된 배열의 첨자 값이 문자열이 정확합니다. 일반적으로 배열 범위를 벗어나는 명시적(즉, 상수를 직접 첨자로 사용) 호출은 이러한 오류를 일으킬 가능성이 적지만, 암시적(즉, 첨자를 나타내기 위해 변수를 사용) 호출은 자주 발생합니다. 오류가 발생합니다.
프로그램에서 정의한 배열의 길이가 일부 특정 메소드에 의해 결정되고 미리 선언되지 않는 상황이 있습니다. 이때 이러한 예외를 피하기 위해 먼저 배열의 길이를 확인하십시오. .
6. 파일 종료 예외: EOFException
프로그램이 입력 프로세스 중에 파일이나 스트림의 끝을 발견하면 예외는 다음과 같습니다. 던져진 . 따라서 이 예외는 파일이나 스트림의 끝에 도달했는지 확인하는 데 사용됩니다. 이 예외는 존재하지 않는 파일을 읽거나 쓸 때 발생합니다. 이 예외는 FileInputStream, FileOutputStream 및 RandomAccessFile의 생성자 선언에 의해 발생합니다. 작동 중인 파일이 존재하지만 쓰기를 위해 읽기 전용 파일을 여는 등 어떤 이유로 액세스할 수 없는 경우에도 이러한 생성 메서드는 여전히 예외를 발생시킵니다.
8. 문자열을 숫자로 변환할 때 예외: NumberFormatException
문자열을 지정된 숫자 유형으로 변환하려고 할 때 문자열이 숫자 유형에 필요한 형식이 실제로 충족되지 않으면 이 예외가 발생합니다. 예를 들어 문자 데이터 "123456"이 숫자 데이터로 변환되면 허용됩니다.
그러나 문자 데이터에 123#56과 같이 숫자가 아닌 문자가 포함된 경우 숫자 유형으로 변환할 때 예외가 발생합니다. 시스템은 이 예외를 포착하고 처리합니다.
9. 지정된 클래스가 존재하지 않습니다. java.lang.ClassNotFoundException여기서 주요 고려사항은 클래스의 이름과 경로입니다. 클래스가 정확합니다. 일반적으로 프로그램이 문자열을 통해 클래스를 로드하려고 하면 예외가 발생할 수 있습니다. 예: Class의 newInstance 메서드를 통해 클래스 인스턴스를 생성하려고 할 때 ClassLoad의 finaSystemClass; 또는 #Raised를 호출하지만 프로그램이 생성자를 통해 객체를 생성할 수 없습니다. 클래스 객체는 추상 클래스, 인터페이스, 배열 클래스, 기본 유형을 나타냅니다. 이 Class가 나타내는 클래스에는 해당 생성자가 없습니다.
자바에 대한 더 많은 지식은 java 기본 튜토리얼 칼럼을 주목해주세요.
위 내용은 Java의 몇 가지 일반적인 예외의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!