9.자바 이상 메커니즘-소 백 대머리 사 10
11451 단어 소 백 대머리 사자바프로 그래 밍 언어jvm
이상 한 개술
이상 은 정상 상태 와 다 르 고 오류 가 발생 하 는 것 이다.자바 에 서 는 현재 방법 이나 역할 영역 을 막 는 것 을 이상 이 라 고 합 니 다.
이상 한 체계
[외부 체인 이미지 저장 실패,원본 사이트 에 도 난 방지 체인 메커니즘 이 있 을 수 있 습 니 다.그림 을 저장 해서 직접 업로드 하 는 것 을 권장 합 니 다(img-rYV0Svta-1610097951596)(이상 한 시스템.jpg)]Error:심각 한 이상,처리 할 수 없습니다.예 를 들 어 하드웨어 문제 Exception:이상 류 라 고 하 는데 절차 자체 가 처리 할 수 있 는 문 제 를 표시 합 니 다.
만약 프로그램 에 문제 가 생 겼 다 면,우 리 는 처리 하지 않 았 다 면,jvn 은 기본 처 리 를 할 것 이다.
이상 명칭,이상 원인 과 이상 이 나타 난 위치 등 정 보 를 콘 솔 에 출력 합 니 다프로그램 실행 정지
자체 처리 이상
자바 프로그램 에서 기본 적 인 이상 처 리 는 전체 프로그램 을 정지 시 키 는 것 이지 만 실제 개발 에서 우리 가 원 하 는 것 은 이상 이 발생 한 후에 영향 을 주지 않 고 실행 할 수 있 기 때문에 스스로 이상 을 처리 해 야 합 니 다.자바 에서 이상 한 처리 방안 은 두 가지 가 있 습 니 다.
try…catch…
형식:
try{
} catch( ){
}
실행 프로 세 스:프로그램 은 try 부터 실 행 됩 니 다.이상 이 발생 하면 자동 으로 이상 클래스 대상 이 생 성 됩 니 다.이 이상 대상 은 자바 가 실 행 될 때 시스템 에 제출 됩 니 다.자바 가 실 행 될 때 시스템 이 이상 을 받 으 면 catch 에서 일치 하 는 이상 류 를 찾 아 이상 한 처 리 를 하고 프로그램 은 계속 아래로 실행 할 수 있 습 니 다.
public class Demo01 {
public static void main(String[] args) {
System.out.println(" ");
method();
System.out.println(" ");
}
public static void method(){
int[] i = {
1,2,3};
try {
System.out.println(i[3]);
}catch (ArrayIndexOutOfBoundsException e){
System.out.println(" ");
}
}
}
throws
비록 우 리 는 try...catch 를 통 해 이상 을 처리 할 수 있 지만 모든 이상 을 처리 할 수 있 는 것 은 아 닙 니 다.자바 는 throws 의 처리 방안 형식 을 제공 합 니 다.방법 명()throws 이상 류 실행 절차:이 이상 은 잠시 상관 하지 않 습 니 다.누가 호출 하고 누가 처리 하 는 지.
사용자 정의 이상
자바 공식 적 으로 많은 이상 을 제 시 했 음 에 도 불구 하고 실제 개발 에 서 는 이러한 이상 이 턱 없 이 부족 합 니 다.예 를 들 어 점수 가 0-100 사이 여야 할 때 이상 처리 형식 을 정의 해 야 합 니 다.
public class extends Exception {
}
구체 적 인 실현:
//
public class GradeException extends Exception {
public GradeException() {
}
public GradeException(String message) {
super(message);
}
}
//
public class Grade {
public void gread(int i) throws GradeException {
if (i < 0 || i > 100){
throw new GradeException();//
//throw new GradeException(" ");//
} else {
System.out.println(" ");
}
}
}
//
public class GradeTest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println(" :");
int i = s.nextInt();
Grade g = new Grade();
try {
g.gread(i);
} catch (GradeException e) {
e.printStackTrace();
//System.out.println(" ");
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【eclipse】같은 파일을 2개 열고 싶다【에디터의 분할】「이런 것은 다른 클래스로 나누어야 한다!」라든지 있다고는 생각합니다만. 실제로 실무 속에서 프로그램을 쓰고 있으면, 이런 소스에 눈에 걸리는 일도 적지 않을까···. 그건 그렇고, 내 노트북에서 이렇게 보입니다 네...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.