>  기사  >  Java  >  Java 프로그램에서 일반적인 예외와 처리 방법은 무엇입니까?

Java 프로그램에서 일반적인 예외와 처리 방법은 무엇입니까?

王林
王林앞으로
2023-06-03 22:16:421471검색

1. JDK의 일반적인 예외

1. 일반적인 예외 요약 다이어그램

2. Java의 예외 분류

Throwable 클래스에는 두 개의 직접적인 하위 클래스가 있습니다.

(1) 예외: 발생 be catch

(2) 오류: 시스템 오류, 일반적으로 JVM에서 처리됨

3. 잡힌 예외 범주

(1) 예외 확인: Exception에서 파생된 예외 클래스를 catch하거나 다시 선언하여 throw합니다.

(2) 런타임 예외: RuntimeException에서 파생된 예외 클래스를 나타냅니다. 이러한 종류의 예외 객체는 언제든지 throw 문을 사용하여 발생할 수 있습니다. throw new ArithmeticException(...);

2. 예외 발생 이유

1.

2. 열려는 파일이 존재하지 않습니다.

3. 네트워크 통신은 연결 중단입니다

4. JVM 메모리 오버플로

3. Java 프로그램의 몇 가지 일반적인 예외와 이 예외의 이유

1. 이 예외의 일반적인 원인은 프로그램에 null 포인터가 있기 때문입니다. 이는 초기화되지 않았거나 존재하지 않는 개체를 호출한다는 의미입니다.

이러한 코드는 객체가 초기화되지 않았거나 이미지 경로가 잘못된 경우 등 객체 생성 및 배열 호출에 자주 나타납니다. 배열 코드

에 나타나는 널 포인터는 배열 초기화와 배열 요소 초기화를 혼동하고 있습니다. 배열의 초기화는 배열에 공간을 할당하는 것이고, 배열 요소의 초기화는 배열의 요소에 초기값을 할당하는 것입니다

2.java.lang.ClassNotFoundException(지정된 클래스는 존재하지 않음)

원인: 문자열 유형의 데이터를 지정된 숫자 유형으로 변환하려고 할 때 문자열이 숫자 데이터의 요구 사항을 충족하지 않는 경우 이 예외가 발생합니다. 예를 들어 문자열 유형의 데이터를 숫자 유형으로 변환하는 경우 "123456"을 숫자 유형으로 변환하는 작업이 가능합니다. 다만, String 타입의 데이터에 123*56 등 숫자가 아닌 문자가 포함되어 있는 경우에는 숫자 타입으로 변환 시 예외가 발생합니다. 시스템이 이 예외를 포착하고 처리합니다

3.java.lang.ClassNotFoundExceptio(지정된 클래스가 존재하지 않습니다)

이 문제의 근본 원인은 클래스의 이름과 경로가 잘못된 경우입니다. 특정 클래스를 로드할 때 예외가 발생할 수 있습니다. 예:

Class.forName()을 호출하거나 ClassLoad의 finaSystemClass() 또는 LoadClass()를 호출할 때 예외가 발생합니다.

4, java.lang.IndexOutOfBoundsException(배열 하위 첨자 범위를 벗어난 예외)

원인: 보기 프로그램에서 호출한 배열이나 문자열의 첨자 값이 배열의 범위를 벗어나는 걸까요? 일반적으로 배열을 명시적으로 호출할 때는 이런 오류가 발생하기 쉽지 않은데, 묵시적인 호출에서는 오류가 발생할 수 있습니다. 또 다른 문제가 있는데, 이 경우 프로그램에서 정의한 배열의 길이는 일부 특정 메소드에 의해 결정되며, 이 때 배열의 길이를 먼저 확인하면 이러한 예외를 피할 수 있습니다. 5. java.lang.IllegalArgumentException(메소드 매개변수 오류)

예를 들어 g.setColor(int red, int green, int blue) 메소드에 3개의 값이 있는 경우, 그 이상일 경우 이 예외가 발생합니다. 255 이상. 프로그램에 이런 경우가 있는 경우

예외인 경우 매개변수 전송이나 메소드 호출 시 매개변수 값이 잘못된지 확인해야 합니다

6.java.lang.IllegalAccessException(접근권한 없음)

프로그램이 클래스를 호출하려고 하지만 현재 메서드는 다음과 같습니다. 이 예외는 클래스에 액세스하지 않고 발생합니다. 프로그램에서 Package를 사용하는 경우 발생할 수 있는 예외입니다

7.java.lang.ArithmeticException(수학 연산 예외)

수학 연산에서 0으로 나누기 등의 연산이 발생하면 이와 같은 예외가 발생합니다. .

8, java.lang.ClassCastException(데이터 유형 변환 예외)

객체를 강제로 하향 변환하려고 시도했지만 객체가 변환 불가능하거나 해당 하위 클래스의 인스턴스로 변환될 수 없는 경우 이 예외가 발생합니다.

9, java.lang.FileNotFoundException(파일을 찾을 수 없는 예외)

이 예외는 프로그램이 읽기 및 쓰기를 위해 존재하지 않는 파일을 열 때 발생합니다. 이 예외는 FileInputStream, FileOutputStream, RandomAccessFile의 생성자 선언에 의해 발생합니다. 작동 중인 파일이 존재하지만 읽기 전용 권한으로

파일을 열고 데이터를 쓰는 등 어떤 이유로든 액세스할 수 없는 경우에도 발생합니다. , 위의 구성 방법은 여전히 ​​예외를 발생시킵니다

10, java.lang.ArrayStoreException(배열 저장 예외)

호환되지 않는 유형의 객체를 Object[] 배열에 저장하려고 하면 예외가 발생합니다

11 , java.lang.NoSuchMethodException (메소드가 존재하지 않는 예외)

프로그램이 리플렉션을 통해 객체를 생성하려고 할 때 메소드에 액세스(수정 또는 읽기)하지만 해당 메소드가 존재하지 않으면 예외가 발생합니다. .

12.java.lang.EOFException(파일 끝 예외)

프로그램이 입력 프로세스 중에 파일이나 스트림의 끝을 발견하면 예외가 발생합니다. 그래서 이 예외는 파일이나 스트림의 끝에 도달했는지 확인하는 데 사용됩니다

13.java.lang.InstantiationException(인스턴스화 예외) Class의 newInstance() 메소드를 통해 클래스의 인스턴스를 생성하려고 할 때

가 발생하지만 프로그램이 생성자를 통해 객체를 생성할 수 없습니다.

Class 객체는 추상 클래스, 인터페이스, 배열 클래스, 기본 유형을 나타냅니다. 이 Class가 나타내는 클래스에는 해당 생성자가 없습니다.

14.java.lang.InterruptedException(중단 예외)

스레드가 장기간 대기, Sleep 또는 기타 일시정지 상태에 있을 때 발생하며 이때 다른 스레드가 Thread의 인터럽트 메소드를 통해 스레드를 종료합니다. 이 예외가 발생합니다.

15.java.lang.CloneNotSupportedException(clone 예외는 지원되지 않음)

Cloneable 인터페이스가 구현되지 않거나 clone 메서드가 지원되지 않는 경우 해당 clone() 메서드를 호출하면 이 예외가 발생합니다

16. java.lang .OutOfMemoryException(메모리 부족 오류)

이 오류는 사용 가능한 메모리가 Java 가상 머신이 객체에 할당하기에 충분하지 않을 때 발생합니다

17, java.lang.NoClassDefFoundException(클래스 정의 오류가 아님) 발견)

Java의 경우 이 오류는 가상 머신이나 클래스 로더가 클래스를 인스턴스화하려고 시도하고 클래스 정의를 찾을 수 없을 때 발생합니다

위 내용은 Java 프로그램에서 일반적인 예외와 처리 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제