--- id: java-errors title: "Java Errors" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["자바 에러 유형"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.9 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["java", "programming", "w3schools", "errors"] raw_sources: ["https://www.w3schools.com/java/java_errors.asp"] applied_in: [] github_commit: "" --- # [[Java Errors]] ## 🎯 한 줄 통찰 (One-line insight) Logical errors are explicitly called "hardest to find" because the program compiles AND runs without crashing — it just produces wrong results (e.g., `x - y` instead of `x + y`), meaning no error message points you to the bug; only testing against expected output reveals it. [S1] ## 🧠 핵심 개념 (Core concepts) - **Compile-time error** — detected by the compiler, prevents the code from running (syntax/type issues). [S1] - **Runtime error** — occurs while running, often causes crashes (e.g., division by zero, out-of-bounds access). [S1] - **Logical error** — code runs and produces output, but the output is wrong; hardest category to detect. [S1] - **Good habits** — meaningful variable names, reading error messages for line numbers, checking for missing semicolons/braces, watching for typos. [S1] ## 📖 세부 내용 (Details) - Missing semicolon: `int x = 5 System.out.println(x); // error: ';' expected`. [S1] - Undeclared variable: `System.out.println(myVar); // cannot find symbol: variable myVar`. [S1] - Mismatched types: `int x = "Hello"; // incompatible types: String cannot be converted to int`. [S1] - Division by zero: `int x = 10; int y = 0; int result = x / y; // ArithmeticException: / by zero`. [S1] - Array out of bounds: `int[] numbers = {1, 2, 3}; System.out.println(numbers[8]); // ArrayIndexOutOfBoundsException`. [S1] - Logical error: `int sum = x - y;` when addition was intended — no exception thrown, just wrong output. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스에서 모순되는 정보는 발견되지 않음. ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — 세 가지 에러 유형 분류는 이후 디버깅/예외 처리 챕터의 기초 개념이다. [S1] ## 💻 코드 패턴 (Code patterns) Logical error — code runs but result is wrong (Java): ```java int x = 10; int y = 2; int sum = x - y; // mistakenly subtracts instead of adds System.out.println("x + y = " + sum); // "x + y = 8" (expected 12) ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.90 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[Java Tutorial]] - **관련 개념:** [[Java Debugging]], [[Java Try Catch]] - **참조 맥락:** 에러 유형 분류(컴파일/런타임/논리) — 디버깅 챕터로 직접 이어짐. ## 📚 출처 (Sources) - [S1] W3Schools — Java Errors — https://www.w3schools.com/java/java_errors.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "Java Errors" page (Astra wiki-curation, P-Reinforce v3.1 format).