이 섹션에서는 다음 내용을 학습합니다. Java에서 예외 메시지를 인쇄하는 방법 다양한 방법을 사용하여 자바 던지기 가능 수업 . Throwable 클래스는 예외 메시지를 인쇄하기 위해 다음 세 가지 메서드를 제공합니다.
- printStackTrace 메소드 사용
- getMessage() 메소드 사용
- toString() 메서드 사용
하나씩 자세히 논의해보자.
printStackTrace() 메소드 사용
그만큼 printStackTrace() 방법 에 정의되어 있습니다 던질 수 있는 java.lang 패키지에 속하는 클래스입니다. 이 메소드는 이름, 설명 (와 같은 / 0으로 ), 그리고 스택 추적 (예외가 발생한 줄 번호 및 클래스 이름) 예외. 스택 추적은 다음 예외가 발생한 위치를 추적합니다. 예외 메시지를 인쇄하는 데 널리 사용됩니다.
printStackTrace() 메서드에는 세 가지 버전이 있습니다.
이 xd는 무슨 뜻인가요?
통사론 | 설명 |
---|---|
printStackTrace() | 이 메서드는 이 throwable과 해당 역추적을 표준 오류 스트림에 인쇄합니다. |
공공 무효 printStackTrace(PrintStream s) | 이 메소드는 지정된 인쇄 스트림에 대한 역추적 및 throwable을 인쇄합니다. |
공공 무효 printStackTrace(PrintWriters) | 이 메소드는 지정된 인쇄 기록기에 대한 역추적 및 throwable을 인쇄합니다. |
printStackTrace() 메소드의 개념을 이해하기 위해 먼저 자바 0으로 나누기 예외를 발생시킨 프로그램입니다. 이 프로그램에서는 예외를 인쇄하기 위해 printStackTrace() 메서드를 사용하지 않습니다.
PrintExceptionMessage1.java
public class PrintExceptionMessage1 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message System.out.println(e); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } }
위 프로그램을 실행하면, 산술 예외 콘솔에 다음 메시지가 인쇄됩니다.
위 메시지에서는 어느 줄에서 예외가 발생했는지 지적할 수 없습니다. 그래서 예외가 발생한 곳을 찾기가 어렵습니다. 이 문제를 극복하기 위해 printStackTrace() 메서드를 사용합니다. Java 프로그램에서 printStackTrace() 메서드를 사용해 보겠습니다.
PrintExceptionMessage2.java
자바는 현재 시간을 얻습니다
public class ExceptionExample2 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message and detail of the exception e.printStackTrace(); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } }
위의 프로그램을 실행해 보겠습니다.
위의 예외 메시지는 어떤 메소드가 예외를 발생시켰는지, 어떤 예외 유형이 있는지, 어떤 행이 예외를 발생시켰는지 명확하게 보여줍니다.
메시지의 첫 번째 줄은 프로그램이 java.lang.ArithmeticException (0으로 나눕니다). 두 번째 줄은 다음 줄에서 예외가 발생했음을 보여줍니다. 9 그리고 Divide() 메서드는 예외를 발생시킵니다. 세 번째 줄은 해당 줄의 예외를 보여줍니다. 이십 일 . Divide() 메서드가 main() 메서드 내에서 호출되기 때문에 main() 메서드에서도 예외가 발생합니다. 따라서 printStackTrace() 방법을 통해 우리는 쉽게 지적할 수 있다. 정확한 위치 예외의.
getMessage() 메소드 사용
그만큼 getMessage() 방법은 다음에도 정의되어 있습니다. 던질 수 있는 java.lang 패키지에 속하는 클래스입니다. 이 메서드는 예외 메시지만 인쇄합니다. 예외 이름이나 설명도 인쇄하지 않습니다. 예외 메시지를 인쇄하는 데 널리 사용됩니다.
통사론:
public String getMessage();
이 Throwable 인스턴스의 세부 메시지 문자열을 반환합니다. null일 수도 있습니다.
Java 프로그램에서 getMessage() 메소드를 사용해 보겠습니다.
PrintExceptionMesssage3.java
public class PrintExceptionMessage3 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //prints only the message of the exception System.out.println(e.getMessage()); //use the following statement if you want to print name of the exception and which exception thrown //System.out.println(e); } } }
위의 프로그램을 실행해 보겠습니다.
우리는 예외만 인쇄하는 것을 관찰합니다. 따라서 예외사항에 대한 자세한 설명을 출력하지 않기 때문에 널리 사용되지는 않습니다.
toString() 메소드 사용
그만큼 toString() 의 방법 던질 수 있는 클래스가 toString() Object 클래스의 메소드 예외에 대한 간단한 설명을 인쇄합니다. 다른 정보(예외 이름 및 스택 추적 등)는 표시되지 않습니다. 예외 메시지를 인쇄하는 데 널리 사용되지는 않습니다.
Java 프로그램에서 toString() 메서드를 사용해 보겠습니다.
PrintExceptionMessage4.java
public class PrintExceptionMessage4 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //we can use either of the statement to print the exception message //both prints the same message System.out.println(e.toString()); //System.out.println(e); } } }
위의 프로그램을 실행해 보겠습니다.
위 메시지에서는 예외의 이름과 유형만 인쇄되는 것을 확인했습니다. 어떤 줄 예외가 발생했는지는 나타내지 않습니다.
kmp 알고리즘
우리는 Java에서 예외 메시지를 인쇄하는 다양한 방법을 살펴보았습니다. 다음을 사용하는 것이 좋습니다. printStackTrace() 메서드는 예외가 발생한 위치를 가리키기 때문입니다.