질문
오늘 문제가 발생했습니다. 다음 코드에서 런타임 예외가 발생하면 후속 코드가 여전히 실행됩니까? 예외 후에 return 문을 추가해야합니까?
public void add (int index, e element) {if (size> = elements.length) {throw new runtimeexception ( "순서 테이블이 가득 차면 추가 할 수 없습니다"); //반품; // 필요합니까? } ....}
이 질문에 답하기 위해 테스트하기 위해 몇 가지 코드를 썼습니다. 결과는 다음과 같습니다.
// code 1public static void test ()는 예외 {wrash new Exception ( "파라미터에서 바운드에서"); System.out.println ( "예외 후"); // 컴파일 오류, "접근 할 수없는 문"} // Code 2Try {Throw New Exception ( "경계에서 매개 변수"); } catch (예외 e) {e.printstacktrace ();} system.out.println ( "예외 후"); // 실행할 수 있습니다 // Code 3if (true) {새 예외를 던지십시오 ( "경계에서 매개 변수"); } system.out.println ( "예외 후"); // 예외가 발생하면 실행되지 않습니다요약 :
코드 한 장 전에 예외가 발생하고 예외가 잡히지 않으면이 코드는 컴파일 타임 오류 "접근 할 수없는 문"을 생성합니다. 코드 1
예외가 코드 전에 제외 되고이 예외가 시도 된 경우, try...catch ,이 시점에서 새로운 예외가 catch 하지 않으면 코드를 실행할 수 있습니다. 그렇지 않으면 제 1 조와 동일하게 코드 2와 동일합니다.
조건부 진술서에 예외가 발생하면 프로그램을 편집 할 수 있지만 후속 진술은 실행되지 않습니다. 코드 3으로
또한 런타임 예외와 비 런타임 예외의 차이점을 요약합니다.
런타임 예외는 RuntimeException 클래스 및 하위 클래스의 예외이며, NullPointerException , IndexOutOfBoundsException 등과 같이 확인되지 않은 예외입니다. 이러한 예외는 시스템 예외이며 네트워크 문제와 같은 처리 할 수 없기 때문입니다.
널 포인터 예외와 같은 프로그램 로직 오류입니다. JVM 은이 오류를 수정하기 위해 실행을 중단해야하므로 처리되지 않고 런타임 예외를 처리 할 수 있으며 (물론 포착 또는 던질 수도 있습니다.) JVM은 자체적으로 처리합니다. Java Runtime 프로그램 throw 의 RuntimeException 에 자동으로 catch 다음 스레드를 중지하고 예외를 인쇄합니다.
런타임이 아닌 예외는 RuntimeException 이외의 예외입니다. 그것들은 모두 Exception 클래스와 유형의 서브 클래스에 속하며 예외를 확인합니다. 런타임이 아닌 예외는 처리 (잡히거나 버림)를 처리해야하며 처리되지 않으면 프로그램에 컴파일 오류가 발생합니다. 일반적으로 API에 throws Exception RuntimeException 아닙니다.
일반적인 런타임 예외 :
일반적인 비 런타임 예외 :
좋아, 위는이 기사의 전체 내용입니다. 이 기사의 내용이 모든 사람의 연구 나 업무에 도움이되기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다.