찾다
Javajava지도 시간Java의 예외 스택에서 예외가 발생한 위치를 찾는 방법

예외 스택은 우리가 일상생활에서 문제를 찾아내는 가장 중요한 수단이며, 문제 해결에 큰 도움을 줍니다. 그러나 우리 모두는 예외를 보는 습관을 가지고 있을 수 있습니다. 특히 예외 스택과 깊은 수준이 많을 때 더욱 그렇습니다.

Java의 예외 스택에서 예외가 발생한 위치를 찾는 방법

매우 걱정스럽고 두려웠습니다. 빠르게 스캔하여 문제가 무엇인지 추측하기 시작했고, 그 추측에 따라 계속해서 코드를 조정했습니다. 많은 시간.

이유는 다음과 같습니다.

1. 예외 스택 정보를 주의 깊게 살펴보지 않았습니다.

2.스택이 너무 많아 문제의 원인이 무엇인지 모르겠습니다.

해결책은 다음과 같습니다.

1. 예외 스택 생성 프로세스를 알아보세요.

2. 인내심을 갖고 스택 정보를 읽어보세요.

3. 문제 해결

1. 예외 생성 프로세스: 위에서 오류가 보고되면 아래를 따릅니다.

예: 다음 테스트 코드가 있습니다

package com.bsx.test;

public class TestException {
    public static void main(String[] args) {
        TestException exception = new TestException();
        exception.m1();
    }

    public void m1() {
        m2();
    }

    public void m2() {
        m3();
    }

    public void m3() {
        String name = null;
        System.out.println(name.length());
    }
}

실행 후 출력 결과는 다음과 같습니다. 이 오류는 로그 출력 순서가 호출 순서와 반대라는 것을 알 수 있습니다. 이유는 무엇입니까?

우리는 Java 메소드가 실행될 때 가상 머신 스택에서 실행된다는 것을 알고 있습니다. 메소드가 실행될 때마다 새로운 스택 프레임이 생성되어 가상 머신 스택에 푸시됩니다.

후입선출 구조이므로 오류가 보고되면 수신자로부터 먼저 오류를 보고한 다음 호출자가 차례로 오류를 보고합니다. 따라서 오류를 인쇄할 때의 순서도 마찬가지입니다. 오류 위치는 맨 위에 있고 호출자는 순서대로입니다. 이것으로부터 우리는 결론을 내릴 수 있습니다. 오류는 위에서 보고되었으며 다음과 같습니다.

2. 오류 메시지 이해: 코드에서 오류 위치 찾기

위 분석을 통해 오류 위치가 위에 있음을 알 수 있습니다. 대부분의 경우 상단의 오류 메시지는 코드에서 오류가 발생한 위치입니다.

그러나 때로는 상단 로그가 우리 자신의 코드가 아닐 수도 있습니다. 그 이유는 우리 코드가 일부 타사 jar 패키지의 코드를 호출하기 때문입니다. 그러나 이는 문제를 찾는 데 영향을 미치지 않습니다. 위에서 보고된 오류를 기반으로 문제를 찾고 아래를 따릅니다. 그러면 실제 오류 위치는 여전히 위에 있습니다.

그럼 위에서 아래로 우리만의 코드만 찾으면 됩니다. 발견된 코드의 첫 번째 위치는 오류를 일으킨 코드의 위치입니다. 때로는 일부 오류 메시지가 명백하여 오류 메시지를 기반으로 문제의 핵심을 직접 찾을 수 있습니다.

오류 메시지가 오류의 원인을 명확하게 나타내지 않는 경우가 있습니다. 이때 정확한 위치에 중단점을 설정하여 디버깅할 수 있습니다.

위 내용은 Java의 예외 스택에서 예외가 발생한 위치를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Java는 여전히 새로운 기능을 기반으로 좋은 언어입니까?Java는 여전히 새로운 기능을 기반으로 좋은 언어입니까?May 12, 2025 am 12:12 AM

javaremainsagoodlugageedueToitscontinuousevolutionandrobustecosystem.1) lambdaexpressionsenhancececeadeabilitys.2) Streamsallowforefficileddataprocessing, 특히 플레어로드 라트 웨이션

Java가 위대하게 만드는 이유는 무엇입니까? 주요 기능과 이점Java가 위대하게 만드는 이유는 무엇입니까? 주요 기능과 이점May 12, 2025 am 12:11 AM

javaisgreatduetoitsplatform incendence, robustoopsupport, extensibraries 및 strongcommunity.1) platforminceptenceviajvmallowscodetorunonvariousplatforms.2) oopeatures inncapsulation, Nheritance, and Polymorphismenblularandscode.3)

상위 5 개의 Java 기능 : 예와 설명상위 5 개의 Java 기능 : 예와 설명May 12, 2025 am 12:09 AM

Java의 5 가지 주요 특징은 다형성, Lambda Expressions, Streamsapi, 제네릭 및 예외 처리입니다. 1. 다형성을 사용하면 다른 클래스의 물체가 공통 기본 클래스의 물체로 사용될 수 있습니다. 2. Lambda 표현식은 코드를보다 간결하게 만듭니다. 특히 컬렉션 및 스트림을 처리하는 데 적합합니다. 3.StreamSapi는 대규모 데이터 세트를 효율적으로 처리하고 선언적 작업을 지원합니다. 4. 제네릭은 유형 안전 및 재사용 성을 제공하며 편집 중에 유형 오류가 잡히립니다. 5. 예외 처리는 오류를 우아하게 처리하고 신뢰할 수있는 소프트웨어를 작성하는 데 도움이됩니다.

Java의 최고 기능은 성능과 확장 성에 어떤 영향을 미칩니 까?Java의 최고 기능은 성능과 확장 성에 어떤 영향을 미칩니 까?May 12, 2025 am 12:08 AM

java'stopfeaturessificeNificeLynitySteperformanceandscalibers

JVM Internals : Java Virtual Machine에 깊숙이 다이빙JVM Internals : Java Virtual Machine에 깊숙이 다이빙May 12, 2025 am 12:07 AM

JVM의 핵심 구성 요소에는 클래스 로더, runtimedataarea 및 executionEngine이 포함됩니다. 1) 클래스 로더는 클래스 및 인터페이스로드, 연결 및 초기화를 담당합니다. 2) runtimedataarea에는 Methodarea, 힙, 스택, Pcregister 및 NativeMethodStacks가 포함되어 있습니다. 3) ExecutionEngine은 바이트 코드의 실행 및 최적화를 담당하는 통역사, JitCompiler 및 GarbageCollector로 구성됩니다.

자바를 안전하고 안전하게 만드는 기능은 무엇입니까?자바를 안전하고 안전하게 만드는 기능은 무엇입니까?May 11, 2025 am 12:07 AM

Java'sSafetyandsecurityArebolsteredBy : 1) 강력한, reventStype relatedErrors; 2) AutomaticMemoryManagementViageGageCollection; 3) 샌드 박스, 고립 코드 프롬 시스템; 및 4) 강도 핸드 링, 보장

필수 Java 기능 : 코딩 기술 향상필수 Java 기능 : 코딩 기술 향상May 11, 2025 am 12:07 AM

javaoffersseveralkeyfeaturestenhancecodingskills : 1) 객체 지향적 인 프로그래밍 allowsmodelingreal-worldentities, 예시적인 혈관 림 모르 즘 .2) 예외적 인 handlingprovidesrobusterrormanagement.3) LambdaexorsionssimplifyOperations, 개선

JVM 가장 완전한 가이드JVM 가장 완전한 가이드May 11, 2025 am 12:06 AM

thejvmisacrucialcomponentsThrunsjavacodebacodebybacodebytranslatingitintintintincinomachine-specificinstructions, 영향력 성능, 보안 및 포트 가능성

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구