차례:
비디오: 이클립스 java was started but returned exit code=13 해결 방법 2024
Java 응용 프로그램의 오류는 여러 번 발생할 수 있습니다. 그러나 다음 절에서 설명하는 것처럼 컴파일 타임과 런타임에서 두 가지 범주로 오류가 발생할시기를 광범위하게 분류 할 수 있습니다.
컴파일 타임 오류
컴파일러는 응용 프로그램 코드를 Java 바이트 코드로 변환합니다. 이 프로세스 중에 작성한 사람이 읽을 수있는 코드를 사용하여 Java Runtime Environment (JRE)에서 이해할 수있는 코드로 변환합니다.
그것을하기를 원하고 어떻게 작업을 완수하길 원합니까? 모호하지 않은 코드 작성 규칙을 위반하면 컴파일러에서 오류 메시지를 표시합니다. 이 메시지는 사실 일종의 예외입니다. 구문 분석 은 사람이 읽을 수있는 형식의 코드와 같이 입력 한 내용을 읽고 Java 바이트 코드와 같은 다른 것으로 변환하는 것을 의미합니다. 응용 프로그램은 사용자 입력을 구문 분석 할 수도 있습니다. 예를 들어 사용자는 응용 프로그램 코드가 숫자로 변하는 문자열을 입력 할 수 있습니다.모든 사람들이 Java 언어가 어떻게 작동 할 것인지 정확하게 이해할 수 있도록 개발자는 개발자가 Java 언어에 대한 스펙을 작성합니다. 이 사양에는 Backus-Naur Form (BNF)이라는 특수 언어로 된 언어 요소가 포함됩니다. BNF를 사용하는 것은 언어를 기술하는 매우 정밀한 방법이므로 누군가가 오역 할 위험이 없습니다.
컴퓨터 언어학과 (Daimi)에서 Java 언어 용 BNF 샘플을 볼 수 있습니다. 이 사양을 읽을 수있는 것에 대해 너무 걱정하지 마십시오. 대부분의 개발자는 BNF를 사용하는 언어로 해석하는 것을 배우지 않으며 컴파일러 개발자의 영역입니다.
런타임 오류Java 컴파일러가 코드의 모든 오류를 찾을 수 없습니다. 코드의 형식이 올바른 경우 (즉, 응용 프로그램을 작성하는 요소를 실수로 입력하지 않은 경우) 컴파일러는 오류를 찾지 못합니다.
예를 들어 숫자 값을 4 대신 5로 초기화하면 컴파일러는 실제로 4를 입력 할 생각이 없다는 이유로 오류를 찾을 수 없습니다. 이러한 유형의 실수는
런타임 오류
- 응용 프로그램 실행 중 어느 시점에서 발생하는 오류.
런타임 오류는 모든 종류의 시간에 발생할 수 있습니다. 일부 오류는 특정 시간에 발생할 가능성이 더 큽니다. 다음 목록은 런타임 오류가 발생할 가능성에 대한 아이디어를 제공합니다.
초기화: 응용 프로그램이 처음 시작될 때 - 사용자에게 인터페이스를 제공하거나 유용한 작업을 수행하기 전에 - 초기화 단계. 이것은 잘못된 유형으로 변수를 설정하거나 초기화하기 전에 변수를 사용하려고 할 때주의를 끌 것입니다. 이 시간 동안 대부분의 응용 프로그램이 필요한 자원을 열기 때문에 많은 자원 관련 오류가 초기화 중에 발생합니다. 작동 모드:
응용 프로그램이 초기화되면 작동 모드가됩니다. 사용자 인터페이스가 있으면 사용자와 상호 작용을 시작합니다. 사용자 입력이 가장 중요한 시점입니다.
-
사용자 (또는 시스템과 같은 응용 프로그램 출력 수신자)가 출력이 부정확하다는 것을 알기 때문에 현재로서는 잘못 초기화 된 변수를 찾을 수 있습니다. 이 시간 동안 데이터 파일과 같은 리소스에 대한 사용자 요청도 오류를 만듭니다. 백그라운드 처리:
-
대부분의 백그라운드 처리 오류는 환경 (예: 네트워크 연결 손실), 누락 된 리소스 (손실 된 파일), 잘못 초기화 된 변수 또는 응용 프로그램에 대한 오류로 인해 발생합니다 작업을 수행합니다. 일부 작업은 다른 작업보다 백그라운드에서보다 일반적으로 수행됩니다. 예를 들어, 문서를 인쇄하거나 인터넷에서 자원을 다운로드하는 것은 일반적으로 백그라운드에서 수행되지만 사용자는 포 그라운드에서 응용 프로그램을 계속 사용합니다. 종료:
사용자 (시스템 계정 포함)가 응용 프로그램에 더 이상 필요하지 않다고 알리면 응용 프로그램이 시스템 종료 단계를 거칩니다. 이 종료 단계에서 응용 프로그램은 파일을 닫고 응용 프로그램이 운영 체제에 혼란을주지 않도록 다른 가사 작업을 수행합니다.
-
이 단계에서 발생할 수있는 가장 일반적인 오류는 응용 프로그램에서 사용한 리소스를 해제하고 데이터를 디스크에 저장하지 않는 것입니다. 물론 코딩 오류는 언제든지 발생할 수 있으며이 작업 단계도 예외는 아닙니다. 네 개만 실제로 열릴 때 다섯 개의 파일을 닫도록 응용 프로그램에 지시 할 수 있습니다. JRE는 발견 한 런타임 오류 대부분을 예외로 표시합니다. 그러나 JRE는 응용 프로그램의 모든 오류를 포착하지 않습니다.출력이 주어진 입력에 대한 기대 값과 일치하는지 여부를 결정하려면 응용 프로그램의 출력을 조사해야합니다.
또한 어떤 방법 으로든 손상되지 않았는지 확인하기 위해 사용하는 리소스의 상태를 확인하는 것이 중요합니다. 예를 들어 파일에 저장해야하는 모든 데이터가 실제로 응용 프로그램이 종료 될 때 파일에 저장되도록해야합니다.
-
Java 8은 보안에 중점을 둡니다. 즉, 응용 프로그램을 사용하면서 더 많은 SecurityException 인스턴스를 볼 수 있습니다. 보안 예외가 증가한다고해서 코드에 결함이 있거나 Java 8이 버그로 가득 차 있다는 것을 의미하지는 않습니다. 즉, Java 8은 사용자가 응용 프로그램을 사용할 때 보안 문제를 일으킬 수있는 문제를 자동으로 찾아 알려줍니다.
Java에서 SecurityException 문서가 나타납니다. 그물. 물론, 당신은 모든 허풍이 무엇인지 알고 싶을 것입니다.