코드 일반 예외(지속적인 업데이트)

5940 단어 기술 잡기

코드 일반 예외(지속적인 업데이트)


카탈로그
코드 일반 예외(지속적인 업데이트)
1、java.lang.NullPointerException(빈 포인터 예외)
2、java.lang.ClassNotFoundException(클래스 예외를 찾을 수 없음)
3、java.산술 예외
4、java.lang.ArrayIndexOutOfBoundsException
5、java.lang.IllegalArgumentException(매개변수 예외)
6、java.lang.IllegalAccessException(액세스 권한 예외 없음)
7、java.lang.IncompatibleClassChangeError(클래스를 호환하지 않는 변경 오류)
8、java.lang.InstantiationError(인스턴스 예외)
9、java.lang.LinkageError(연결 오류)
10、java.lang.StackOverflowError(스택 오버플로우)
11、java.메모리 오버플로우 예외

1、java.lang.NullPointerException(빈 포인터 예외)


빈 바늘 이상: 간단하게 말하면 초기화되지 않은 대상이나 존재하지 않는 대상을 호출한 것이다. 이 오류는 그림을 만들 때, 그룹을 호출하는 작업에서 자주 나타난다. 예를 들어 그림을 초기화하지 않았거나 그림을 만들 때의 경로 오류 등이다.수조 조작에 빈 바늘이 나타나면 프로그래밍을 처음 배우는 친구들이 자주 범하는 오류이다. 즉, 수조의 초기화와 수조 요소의 초기화를 혼동하는 것이다.수조의 초기화는 수조의 분배에 필요한 공간이지만 초기화된 수조는 그 중의 원소가 실례화되지 않고 비어 있기 때문에 모든 원소를 초기화해야 한다. (호출하려면)
//                 
//  String aa   hello
String aa = hello;
if("hello".equals(aa)){}

2、java.lang.ClassNotFoundException(클래스 예외를 찾을 수 없음)


오류 정보: 이 종류의 패키지를 찾을 수 없습니다
  • 우선 프로젝트 파일에 해당하는 jar 패키지를 추가하지 않았습니다. 의존적으로 jar 패키지가 있는지 확인
  • jar 패키지가 있다면.더블 클릭하여 그를 엽니다. 만약 파손되었음을 알릴 때 다시 내려야 합니다.
  • 마지막 이유는 마븐 프로젝트의jar 패키지를 배치된 프로젝트 파일에 발표하지 않았기 때문입니다.내장된tomcat에서lib 의존이 생성되지 않았습니다
  • 3、java.산술 예외


    이 이상한 해석은'수학 연산 이상'이다. 예를 들어 프로그램에 0을 나누는 연산이 생기면 이런 이상이 생길 수 있다. 이런 이상에 대해 모두 자신의 프로그램에서 수학 연산이 관련된 부분이 있는지 공식이 타당하지 않은지 잘 검사해야 한다.

    4、java.lang.ArrayIndexOutOfBoundsException


    이 이상은 많은 친구들도 자주 만났다고 믿지만,이상한 해석은'수조 하위 표시가 경계를 넘는다'는 것이다. 현재 프로그램에는 대부분 수조에 대한 조작이 있기 때문에 수조를 호출할 때 반드시 진지하게 검사해야 한다. 자신이 호출한 하위 표시가 수조의 범위를 넘어섰는지 확인해야 한다. 일반적으로 표시(즉 상수로 현재 표시) 호출은 이런 오류가 발생하기 쉽지 않지만 은식(즉 변수로 하위 표시)호출하면 자주 오류가 발생하는데, 또 다른 상황은 프로그램에서 정의한 수조의 길이는 특정한 방법을 통해 결정되는 것이며, 사전에 성명한 것이 아니다. 이럴 때, 이 이상이 발생하지 않도록 수조의length를 먼저 살펴보는 것이 가장 좋다

    5、java.lang.IllegalArgumentException(매개변수 예외)


    이 이상한 해석은'방법의 매개 변수 오류'입니다. 많은 J2ME 라이브러리의 방법은 일부 상황에서 이런 오류를 일으킬 수 있습니다. 예를 들어 음량 조절 방법의 음량 매개 변수가 음수로 쓰이면 이 이상이 발생합니다. 예를 들어 g.setColor(int red, int green, int blue)이 방법의 세 가지 값은 255이 넘으면 이 이상이 나타날 수 있기 때문에 이 이상이 발견되면 우리가 해야 할 일은 방법 호출 중의 매개 변수 전달에 오류가 있는지 빨리 검사하는 것이다.

    6、java.lang.IllegalAccessException(액세스 권한 예외 없음)


    이 이상에 대한 설명은 "액세스 권한이 없다"는 것이다. 프로그램이 클래스를 호출하려고 할 때 현재의 방법은 클래스에 대한 액세스 권한이 없으면 이 이상이 발생할 수 있다. 프로그램에 Package를 사용한 경우 이 이상에 주의해야 한다.

    7、java.lang.IncompatibleClassChangeError(클래스를 호환하지 않는 변경 오류)


    호환되지 않는 클래스 변화 오류입니다.실행 중인 방법이 의존하는 클래스 정의가 호환되지 않을 때 이 이상을 던집니다.일반적으로 응용 프로그램 중의 일부 클래스의 성명 정의를 수정하고 전체 응용 프로그램을 다시 컴파일하지 않고 직접 실행하는 경우 이 오류를 일으키기 쉽다

    8、java.lang.InstantiationError(인스턴스 예외)


    실례화 오류.응용 프로그램이 자바의 new 조작부호를 통해 추상적인 클래스나 인터페이스를 구성하려고 할 때 이 이상을 던집니다.

    9、java.lang.LinkageError(연결 오류)


    링크 오류입니다.이 오류와 모든 하위 클래스는 어떤 클래스가 다른 클래스에 의존하는 것을 지시한다. 이 클래스를 컴파일한 후에 의존하는 클래스가 클래스의 정의를 바꾸고 모든 클래스를 다시 컴파일하지 않아 오류가 발생하는 경우

    10、java.lang.StackOverflowError(스택 오버플로우)


    창고 넘침 오류는 일반적으로 귀속을 사용할 때 차원에서 너무 깊게 던져진 이상을 호출합니다.원인은 다음과 같다. 무한 호출 귀속 함수, 함수는 창고 프레임 형식으로 가상 창고 메모리에 존재하고 창고 프레임을 계속 만들어서 창고가 넘친다.

    11、java.메모리 오버플로우 예외

  • 코드에 사순환이나 귀속 호출이 있는지 검사합니다.
  • 큰 순환이 반복되어 새로운 대상 실체가 생겼는지 검사한다.
  • 데이터베이스 조회에서 모든 데이터를 한 번에 얻었는지 검사한다.일반적으로 한 번에 10만 개를 메모리에 기록하면 메모리가 넘칠 수 있다.이 문제는 비교적 은폐적이다. 상륙하기 전에 데이터베이스에 있는 데이터가 비교적 적고 문제가 발생하기 어렵다. 상륙한 후에 데이터베이스에 데이터가 많아지면 한 번의 조회로 메모리가 넘칠 수 있다.따라서 데이터베이스 조회는 가능한 한 페이지를 나누는 방식으로 조회한다.
  • List, MAP 등의 컬렉션 객체를 사용한 후 지워지지 않은 문제가 있는지 확인합니다.List, MAP 등 집합 대상은 항상 대상에 대한 인용을 저장하여 이 대상들이 GC에서 회수되지 못하게 한다
  • 또는 JVM 메모리 설정이 너무 작으면 jvm 메모리를 확대하고 코드를 최적화할 수 있다. Java 더미는 대상을 저장하는 실례에 사용된다. 대상을 끊임없이 만들고 GC Roots에서 대상 사이에 도달할 수 있는 경로를 확보하여 쓰레기 회수 메커니즘을 피하고 이 대상을 제거하면 대상 수량이 가장 많은 용량 제한에 도달한 후에 메모리 넘침 이상이 발생할 수 있다.(자바 가상기를 깊이 이해한 것에서 발췌한 것) 때문에 new String () 은 메모리가 넘치지 않습니다.
    tomcat 중java.lang.outOfMemoryError: PermGen space 예외 처리
    PermGen space의 전체 명칭은 Permanent Generation space로 메모리의 영구 저장 구역을 가리킨다. 이 메모리는 주로 JVM에 Class와 Meta 정보를 저장하는 것이다. Class는 Loader에 있을 때 PermGen space에 저장된다. 저장 클래스 실례(Instance)의 Heap 구역과 달리 GC(Garbage Collection)는 메인 프로그램 실행 기간에 PermGen space를 정리하지 않기 때문에 응용 프로그램에 CLASS가 많다면PermGen space 오류가 발생할 가능성이 높습니다. 이러한 오류는 웹 서버가 JSP에 pre compile을 실행할 때 자주 발생합니다.만약에 WEB 앱에서 대량의 제3자jar를 사용했는데 그 크기가 jvm의 기본 크기(4M)를 초과하면 이 오류 메시지가 발생합니다.해결 방법: MaxPermSize 크기 수정 수동 설정
     
    참고 자료 -- 메모리 오버플로우 오류 세부 정보

    좋은 웹페이지 즐겨찾기