이는 던지기, 잡기, 어설션 및 로깅을 포함한 기본적인 예외 처리를 소개하는 작은 예입니다.
Java 예외 처리는 try, catch, throw, throws 및 finally의 5가지 키워드를 통해 관리됩니다. 기본 프로세스는 try 문 블록으로 모니터링할 문을 래핑하는 것입니다. try 문 블록 내에서 예외가 발생하면 해당 예외가 catch 문 블록에서 처리될 수 있습니다. 다음은 Java가 실행 중일 때 일부 시스템 생성 예외가 자동으로 발생합니다. throws 키워드를 통해 예외를 발생시키는 메서드를 선언한 다음 메서드 내에서 throw를 통해 예외 개체를 발생시킬 수도 있습니다.
다음과 같이 코드 코드를 복사합니다.
패키지 com.hongyuan.test;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
공개 클래스 ExceptionHandleTest {
공전{
//어설션을 활성화하면 시스템 클래스 로더가 로드한 클래스에 어설션이 활성화됩니다.
ClassLoader.getSystemClassLoader().setDefaultAssertionStatus(true);
}
공개 정적 무효 메인(String[] args) {
/*
* 던지고, 붙잡고
*/
노력하다 {
TryCatchTest.run(10, -1);
} 잡기(IOException e) {
e.printStackTrace();
}
System.out.println("========================================== = =========");
//통나무
LogerTest.run();
System.out.println("========================================== = =========");
//역설
AssertTest.div(3,0);
}
}
/*
* 주장
*/
클래스 AssertTest {
공개 정적 이중 div(int b,int a){
주장 a!=0: "당신이 이것을 사용하는지 초등학교 선생님이 아시나요?";
(더블)b/a를 반환;
}
}
/*
* 통나무
*/
클래스 LogerTest {
개인 정적 로거 로거=null;
공전{
//로그 객체를 가져오고 로그 수준을 정의합니다.
logger=Logger.getLogger(LogerTest.class.getName());
logger.setLevel(레벨.ALL);
}
공개 정적 무효 실행(){
//입력방법
logger.entering(LogerTest.class.getName(), "실행");
//일반정보
logger.info("또 문제를 일으키세요. 저는 이 계정을 녹화했습니다!!!");
//경고하다
logger.warning("너무 피곤해서 이 일을 할 수가 없어요!!!");
//심각한
logger.log(Level.SEVERE,"그만두겠습니다!!!^O^");
//종료 방법
logger.exiting(LogerTest.class.getName(), "실행");
}
}
/*
* 캡처, 던지기
*/
클래스 TryCatchTest {
public static void run(int x,int y)는 IOException을 발생시킵니다.
시도{//필수
if(x<0||y<0){
throw new IllegalArgumentException("말이 안 돼요, 어떡해요!!!");
}
}catch(예외 e){//선택 사항
IOException e1=new IOException("직접 알아낼 수 있습니다!");
e1.initCause(e.getCause());
e1을 던져라;
}마지막으로{//선택사항
System.out.println("드디어 그들은 행복한 삶을 살았습니다!!! (끝)");
}
}
}