Java 개발 -- 5- 예외 처리(상)

3855 단어 Java 개발
5.1 기초 이론
1. 자바 이상 처리가 어떻게 작동하는지 이해하려면 다음과 같은 세 가지 유형의 이상을 파악해야 한다.
검사성 이상: 가장 대표적인 검사성 이상은 사용자 오류나 문제로 인한 이상으로 프로그래머가 예견할 수 없는 것이다.예를 들어 존재하지 않는 파일을 열 때 이상이 발생하는데, 이러한 이상은 컴파일할 때 간단하게 무시할 수 없다.
실행 중 이상: 실행 중 이상은 프로그래머가 피할 수 있는 이상입니다.검사성 이상과 반대로, 실행할 때 이상은 컴파일할 때 무시될 수 있습니다.
오류: 오류는 이상이 아니라 프로그래머의 제어에서 벗어난 문제입니다.코드에서 오류는 일반적으로 무시됩니다.예를 들어 창고가 넘치면 오류가 발생하고 컴파일에서도 검사할 수 없습니다.
2. 명사 해석
1. 검사성 이상: 컴파일을 처리하지 않으면 통과할 수 없습니다.2. 비검사적 이상: 컴파일을 처리하지 않으면 통과할 수 있으며, 덤핑이 있으면 컨트롤러에 직접 던질 수 있다.3. 운행 시 이상: 비검사적 이상이다.4, 비운행 시 이상: 검사성 이상입니다.
3. 이상 사용은 아래의 원칙에 따른다
1. 현재 방법이 덮어쓰일 때 다른 방법은 같은 이상이나 이상한 하위 클래스를 던져야 한다.2. 현재 방법 성명에서try-catch 문구를 사용하여 이상을 포착합니다.3. 만약에 부류가 여러 개의 이상을 던진다면 덮어쓰기 방법은 반드시 그 이상을 던진 서브집합을 던져야 하며 새로운 이상을 던질 수 없다.
4. 이상 대상 구조
모든 이상 대상은 Throwable 클래스에서 파생된 것이다.Throwable 클래스에는 두 개의 하위 클래스가 있습니다.하나는 Exception 클래스이고 다른 하나는 Error 클래스입니다.모든 예외는 Exception 클래스의 하위 클래스입니다.
Exception 클래스 예외는
컴파일 이상: 이런 이상은 컴파일할 때 컴파일러가 포획해야 한다고 알려주고 포획하지 않으면 컴파일 오류가 발생합니다.흔히 볼 수 있는 컴파일 이상은 IOException(흐름 전송 이상),SQLException(데이터베이스 조작 이상) 등이 있다.
실행 시 이상: 코드를 작성할 때 컴파일러에 의해 검출되지 않으며, 포획되지 않을 수도 있고, 적시에 포획하여 던질 수도 있습니다.흔히 볼 수 있는 Runtime Exception은 NullpointException(빈 바늘 이상)ClassCastException(유형 전환 이상)IndexOutOfBoundsException(수조 경계 이상) 등이 있다.
5.2 이상 클래스와 이상 방법
1. 내장된 이상 유형
자바의 이상 클래스는 자바에 있습니다.lang 표준 패키지비검사성 이상류와 검사성 이상류로 나뉜다.
Java 비검사적 예외 클래스
유난히
묘사
ArithmeticException
이상한 연산 조건이 나타나면 이 이상을 던집니다.예: 5/0
ArrayIndexOutOfBoundsException
불법 인덱스로 그룹에 접근할 때 버려진 이상입니다.만약 인덱스가 마이너스 또는 수조 크기보다 크면, 이 인덱스는 불법 인덱스입니다
ArrayStoreException
오류 형식의 대상을 대상 그룹에 저장하려고 할 때 던진 이상
ClassCastException
대상을 실례가 아닌 하위 클래스로 강제로 변환하려고 할 때 이 이상을 던집니다
IllegalArgumentException
던진 이상은 방법에 비합법적이거나 부정확한 매개 변수를 전달했음을 나타낸다
IllegalMonitorStateException
던진 이상은 어떤 라인이 대상을 기다리려는 감시기를 나타낸다
IllegalStateException
Java 환경 또는 Java 응용 프로그램이 요청 작업에 필요한 적절한 상태가 아닙니다.
IllegalThreadStateException
루틴이 요청 조작이 요구하는 적당한 상태에 있을 때 던지는 이상이 없습니다
IndexOutOfBoundsException
어떤 정렬 인덱스가 범위를 초과할 때 던지기를 표시합니다
NegativeArraySizeException
만약 프로그램이 크기가 마이너스인 그룹을 만들려고 한다면, 이 이상을 던집니다
NullPointerException
프로그램이 대상이 필요한 곳에서null을 사용하려고 시도할 때 이 이상을 던집니다
NumberFormatException
프로그램이 문자열을 수치 형식으로 변환하려고 시도하지만, 이 문자열을 적당한 형식으로 변환할 수 없을 때, 이 이상을 던집니다
SecurityException
안전 관리자가 던진 이상, 안전 침해가 있음을 지시
StringIndexOutOfBoundsException
이 이상은 String 메서드에서 제거되며, 색인이 마이너스이거나 문자열의 크기를 초과하는 것을 표시합니다.
UnsupportedOperationException
요청한 작업이 지원되지 않을 때 이 이상을 던집니다
Java 체크 예외 클래스
유난히
묘사
ClassNotFoundException
응용 프로그램이 클래스를 불러오려고 할 때, 해당하는 클래스를 찾지 못하면, 이 이상을 던집니다
CloneNotSupportedException
Object 클래스에서 clone 메소드를 호출하여 객체를 복제하지만 해당 객체의 클래스가 Cloneable 인터페이스를 구현하지 못할 경우 예외를 제거합니다.
IllegalAccessException
클래스에 접근하는 것을 거부할 때 이 이상을 던집니다
InstantiationException
클래스 클래스의 newInstance 방법을 사용하여 클래스의 실례를 만들려고 하는데, 지정한 클래스 대상이 인터페이스나 추상적인 클래스이기 때문에 실례화할 수 없을 때, 이 이상을 던집니다
InterruptedException
한 라인이 다른 라인에 의해 중단되었는데, 이 이상을 던졌다
NoSuchFieldException
요청한 변수가 없습니다.
NoSuchMethodException
요청한 방법이 없습니다.
2. 이상 방법
Throwable 클래스의 주요 방법
메서드
설명
public String getMessage()
발생한 이상에 대한 자세한 정보를 되돌려줍니다.이 메시지는 Throwable 클래스의 구조 함수에서 초기화되었습니다
public Throwable getCause()
Throwable 객체를 반환하면 예외가 발생합니다.
public String toString()
getMessage () 를 사용하여 클래스의 직렬 이름을 되돌려줍니다.
public void printStackTrace()
toString() 결과 및 스택 계층을 System으로 인쇄합니다.err, 즉 오류 출력 흐름
public StackTraceElement [] getStackTrace()
창고 차원을 포함하는 그룹을 되돌려줍니다.아래 0으로 표시된 원소는 창고 꼭대기를 대표하고, 마지막 원소는 창고 밑바닥을 호출합니다
public Throwable fillInStackTrace()
Throwable 객체 스택 계층을 현재 호출 스택 계층으로 채웁니다.

좋은 웹페이지 즐겨찾기