Java에서 printStackTrace() 메서드는 어떤 용도로 사용됩니까?
소켓 프로그램을 거치고 있어요. 안에 ★★★★★★★★★★★★★★★★★.printStackTrace
IOException
캐치 블록 내의 오브젝트.
무인 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()
메서드입니다.Throwable
java.lang
합니다.이치첫 번째 줄은 여러 문자열로 구성되어 있습니다.여기에는 Throwable 서브클래스의 이름과 패키지 정보가 포함되어 있습니다.가 에러나다로 하는 것을 .at
마지막 행은 항상 오류/예외의 영향을 받는 수신처를 나타냅니다.두 번째 마지막 행은 마지막 행에서 설명된 회선 번호에서 전송을 받은 후 컨트롤이 이동하는 스택의 다음 행을 알려줍니다. 「/」, 「」에 의해서 .fillInStackTrace()
의 방법Throwable
class. 실행 스택에 프로그램 제어 전송 세부사항을 입력합니다.로 시작하는 행at
는 실행 스택의 값일 뿐입니다.이러한 방법으로 프로그래머는 코드의 실제 문제가 어디에 있는지 이해할 수 있습니다.
와 함께printStackTrace()
method를 사용하는 것이 좋습니다.e.getmessage()
.
printStackTrace()
소스 코드에서 예외가 발생한 위치를 인쇄하여 프로그램을 작성한 작성자가 무엇이 잘못되었는지 볼 수 있도록 합니다.그러나 소스 코드에 문제가 있기 때문에 코딩 경험이 있는 사용자는 무엇이 잘못되었는지 이해하지 못할 수 있으므로 프로그램이 작성자에게 오류 메시지를 보낼 수 있도록 허용하면 사용자는 무엇이 잘못되었는지에 대한 좋은 데이터를 제공하지 못할 수 있습니다.
다음 사항을 고려해야 합니다.Logger.getLogger()
이 방법은 더 나은 예외 처리(예외 처리) 기능을 제공합니다.printStackTrace()
인수가 없는 경우는 폐지된 것으로 간주되며 디버깅 목적으로만 사용해야 하며 사용자 표시에는 사용하지 마십시오.
printStackTrace()
는 프로그래머가 실제 문제가 발생한 위치를 이해하는 데 도움이 됩니다.printStackTrace()
메서드의 입니다.Throwable
java.lang
★★★★★★★★★★★★★★★★★★.
printStackTrace
는 의 방식입니다.Throwable
class.이는 콘솔에이code.class에서 가 발생합니다. 이 메서드는 콘솔에 오류 메시지를 표시합니다. 여기서 소스 코드에서 예외가 발생합니다.캐치 블록에 사용할 수 있는 방법은 다음과 같습니다.
- 예외 이름
- 예외 설명
- 소스 코드 내의 예외 위치.
printStackTrace가 그 중 하나라는 콘솔의 예외를 설명하는 세 가지 방법은 다음과 같습니다.
printStackTrace()
toString()
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
'programing' 카테고리의 다른 글
Sequel Pro와 MySQL을 연결하지 못했습니다. (0) | 2022.11.26 |
---|---|
JavaScript 문자열 트리밍 (0) | 2022.11.26 |
Java "user.dir" 속성 - 정확히 어떤 의미입니까? (0) | 2022.11.26 |
PHP 스크립트에서 JSON 반환 (0) | 2022.11.26 |
Meteor, Vue 및 Typescript 설정 (0) | 2022.11.26 |