programing

Java에서 printStackTrace() 메서드는 어떤 용도로 사용됩니까?

sourcetip 2022. 11. 26. 13:41
반응형

Java에서 printStackTrace() 메서드는 어떤 용도로 사용됩니까?

소켓 프로그램을 거치고 있어요. 안에 ★★★★★★★★★★★★★★★★★.printStackTraceIOException캐치 블록 내의 오브젝트.
무인 does does 가 뭐죠?printStackTrace()★★★★★★★★★★★★★★★★?

catch(IOException ioe)
{
    ioe.printStackTrace();
}

나는 그것의 목적을 모른다.어디에 쓰는 거죠?

에 대한 방법입니다.Exception인스턴스의 스택트레이스를 에 출력하는 인스턴스.

이것은 매우 간단하지만 예외를 진단하는 데 매우 유용한 도구입니다.코드에서 무슨 일이 일어났고 어디서 이런 일이 일어났는지 알려줍니다.

다음은 실제 사용 방법의 예입니다.

try {
    // ...
} catch (SomeException e) { 
    e.printStackTrace();
}

「 코드, 이유( 「한 프로덕션 코드」등)에 의해,해 주세요.System.out유용성이 떨어지고 스레드 안전성이 떨어집니다., 매우 합니다.이러한 경우, 「」는 합니다.log.error("Error during frobnication", e);.

저도 이 점이 궁금해서 샘플 코드를 조합했습니다.이 코드에는 어떤 기능이 있는지 알 수 있습니다.

try {
    throw new NullPointerException();
}
catch (NullPointerException e) {
    System.out.println(e);
}

try {
    throw new IOException();
}
catch (IOException e) {
    e.printStackTrace();
}
System.exit(0);

" "println(e):

java.lang.NullPointerException

" "e.printStackTrace():

java.io.IOException
      at package.Test.main(Test.java:74)

예외를 추적하는 데 도움이 됩니다.예를 들어, 프로그램에 몇 가지 메서드를 쓰고 있는데, 그 메서드 중 하나가 버그를 일으킵니다.그런 다음 printstack을 통해 버그의 원인이 되는 방법을 식별할 수 있습니다.스택은 다음과 같이 도움이 됩니다.

먼저 메인 메서드를 호출하여 스택에 삽입한 후 두 번째 메서드를 호출하여 LIFO 순서로 스택에 삽입합니다.어떤 메서드 내부에서 오류가 발생했을 경우 이 스택은 해당 메서드를 식별하는 데 도움이 됩니다.

printStackTrace()는 프로그래머가 실제 문제가 발생한 위치를 이해하는 데 도움이 됩니다. printStacktrace() 메서드입니다.Throwablejava.lang합니다.이치첫 번째 줄은 여러 문자열로 구성되어 있습니다.여기에는 Throwable 서브클래스의 이름과 패키지 정보가 포함되어 있습니다.가 에러나다로 하는 것을 .at

마지막 행은 항상 오류/예외의 영향을 받는 수신처를 나타냅니다.두 번째 마지막 행은 마지막 행에서 설명된 회선 번호에서 전송을 받은 후 컨트롤이 이동하는 스택의 다음 행을 알려줍니다. 「/」, 「」에 의해서 .fillInStackTrace()의 방법Throwableclass. 실행 스택에 프로그램 제어 전송 세부사항을 입력합니다.로 시작하는 행at는 실행 스택의 값일 뿐입니다.이러한 방법으로 프로그래머는 코드의 실제 문제가 어디에 있는지 이해할 수 있습니다.

와 함께printStackTrace()method를 사용하는 것이 좋습니다.e.getmessage().

printStackTrace()소스 코드에서 예외가 발생한 위치를 인쇄하여 프로그램을 작성한 작성자가 무엇이 잘못되었는지 볼 수 있도록 합니다.그러나 소스 코드에 문제가 있기 때문에 코딩 경험이 있는 사용자는 무엇이 잘못되었는지 이해하지 못할 수 있으므로 프로그램이 작성자에게 오류 메시지를 보낼 수 있도록 허용하면 사용자는 무엇이 잘못되었는지에 대한 좋은 데이터를 제공하지 못할 수 있습니다.

다음 사항을 고려해야 합니다.Logger.getLogger()이 방법은 더 나은 예외 처리(예외 처리) 기능을 제공합니다.printStackTrace()인수가 없는 경우는 폐지된 것으로 간주되며 디버깅 목적으로만 사용해야 하며 사용자 표시에는 사용하지 마십시오.

printStackTrace()는 프로그래머가 실제 문제가 발생한 위치를 이해하는 데 도움이 됩니다.printStackTrace() 메서드의 입니다.Throwable java.lang★★★★★★★★★★★★★★★★★★.

printStackTrace는 의 방식입니다.Throwableclass.이는 콘솔에이code.class에서 가 발생합니다. 이 메서드는 콘솔에 오류 메시지를 표시합니다. 여기서 소스 코드에서 예외가 발생합니다.캐치 블록에 사용할 수 있는 방법은 다음과 같습니다.

  1. 예외 이름
  2. 예외 설명
  3. 소스 코드 내의 예외 위치.

printStackTrace가 그 중 하나라는 콘솔의 예외를 설명하는 세 가지 방법은 다음과 같습니다.

  1. printStackTrace()
  2. toString()
  3. getMessage()

예:

public class BabluGope {
    public static void main(String[] args) {
        try {
            System.out.println(10/0);
         } catch (ArithmeticException e) {
             e.printStackTrace();   
             // System.err.println(e.toString());
             //System.err.println(e.getMessage());  
         }
    }
}

printStackTrace()는 프로그래머가 실제 문제가 발생한 위치를 이해하는 데 도움이 됩니다.예외를 추적하는 데 도움이 됩니다.이것은 모든 예외 클래스에서 상속되는 Throwable 클래스의 printStackTrace() 메서드입니다.이 메서드는 e 객체의 동일한 메시지와 예외가 발생한 행 번호를 출력합니다.

다음은 Java에서의 예외 인쇄 스택의 또 다른 예입니다.

public class Demo {
   public static void main(String[] args) {
      try {
         ExceptionFunc();
      } catch(Throwable e) {
         e.printStackTrace();
      }
   }
   public static void ExceptionFunc() throws Throwable {
      Throwable t = new Throwable("This is new Exception in Java...");

      StackTraceElement[] trace = new StackTraceElement[] {
         new StackTraceElement("ClassName","methodName","fileName",5)
      };
      t.setStackTrace(trace);
      throw t;
   }
}

java.displaces를 클릭합니다.폐기 가능:이것은 Java의 새로운 예외입니다...ClassName에 있습니다.methodName(fileName:5)

Java에서 e.printStackTrace() 메서드는 어떤 용도로 사용됩니까?

, 이 은요.e.printStackTrace();정확히 뭐가 잘못됐는지 보는 거야

예를 들어 예외를 처리하려고 합니다.다음 예시를 살펴보겠습니다.

public class Main{

  public static void main(String[] args) {

    int a = 12;
    int b = 2;

    try {
       int result = a / (b - 2);
       System.out.println(result);
    }

    catch (Exception e)
    {
       System.out.println("Error: " + e.getMessage());
       e.printStackTrace();
    }
  }
}

이 방법을 요.e.printStackTrace();정확히 뭐가 잘못됐는지 보여주기 위해서요

출력에서는 다음과 같은 결과를 확인할 수 있습니다.

Error: / by zero

java.lang.ArithmeticException: / by zero

  at Main.main(Main.java:10)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

언급URL : https://stackoverflow.com/questions/2560368/what-is-the-use-of-printstacktrace-method-in-java

반응형