logo

Java で例外メッセージを出力するさまざまな方法

このセクションでは、次のことを学びます Javaで例外メッセージを出力する方法 さまざまな方法を使用することで、 Java スロー可能 クラス 。 Throwable クラスには、例外メッセージを出力するための次の 3 つのメソッドが用意されています。

  • printStackTrace メソッドの使用
  • getMessage() メソッドの使用
  • toString() メソッドの使用
Java で例外メッセージを出力するさまざまな方法

一つずつ詳しく説明していきます。

printStackTrace() メソッドの使用

printStackTrace() 方法 で定義されています 投擲可能 java.langパッケージに属するクラス。このメソッドは、 名前、説明 (のような / ゼロまで )、 そしてその スタックトレース 例外の (例外が発生した行番号とクラス名)。スタック トレースは、次の例外が発生した場所を追跡します。例外メッセージを出力するために広く使用されています。

printStackTrace() メソッドには 3 つのバージョンがあります。

前方連鎖
構文 説明
printStackTrace() このメソッドは、このスロー可能オブジェクトとそのバックトレースを標準エラー ストリームに出力します。
public void printStackTrace(PrintStream s) このメソッドは、スロー可能オブジェクトとそのバックトレースを指定された印刷ストリームに出力します。
public void printStackTrace(PrintWriter s) このメソッドは、throwable とそのバックトレースを指定された印刷ライターに出力します。

printStackTrace() メソッドの概念を理解するために、まず、 ジャワ ゼロ除算例外を発生させたプログラム。このプログラムでは、例外を出力するために 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(); } } 

上記のプログラムを実行すると、次の結果が得られます。 算術例外 次のメッセージがコンソールに表示されます。

Java で例外メッセージを出力するさまざまな方法

上記のメッセージでは、どの行が例外をスローしているかを指摘できません。したがって、どこで例外が発生したかを見つけるのは困難です。この問題を解決するには、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 で例外メッセージを出力するさまざまな方法

上記の例外メッセージは、どのメソッドが例外を発生させたか、例外の種類、およびどの行が例外をスローしたかを明確に示します。

メッセージの最初の行は、プログラムが java.lang.ArithmeticException (ゼロで割る)。 2 行目は、次の行で例外が発生したことを示しています。 9 そしてメソッド Division() は例外をスローします。 3 行目は、次の行での例外を示しています。 21 。 Division() メソッドが main() メソッド内で呼び出されるため、main() メソッドも例外をスローします。したがって、 printStackTrace() メソッドを使用すると、簡単に指摘できます。 正確な場所 例外の。

getMessage() メソッドの使用

getMessage() メソッドも 投擲可能 java.langパッケージに属するクラス。このメソッドは例外のメッセージのみを出力します。例外の名前も説明も出力しません。例外メッセージを出力するために広く使用されています。

構文:

 public String getMessage(); 

この Throwable インスタンスの詳細メッセージ文字列を返します。 null の場合もあります。

Java プログラムで getMessage() メソッドを使用してみましょう。

Javaの匿名関数

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); } } } 

上記のプログラムを実行してみましょう。

Java で例外メッセージを出力するさまざまな方法

例外のみが出力されることがわかります。したがって、例外の詳細な説明を出力しないため、広く使用されていません。

toString() メソッドの使用

toString() の方法 投擲可能 クラスは toString() オブジェクトクラスのメソッド。例外の短い説明を出力します。その他の情報 (例外名やスタック トレースなど) は表示されません。例外メッセージを出力するためにはあまり使用されていません。

Java プログラムで toString() メソッドを使用してみましょう。

PrintExceptionMessage4.java

C++の文字列
 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); } } } 

上記のプログラムを実行してみましょう。

Java で例外メッセージを出力するさまざまな方法

上記のメッセージでは、例外の名前とタイプのみが出力されることがわかります。どの行で例外が発生したかは指摘されません。

Java で例外メッセージを出力するさまざまな方法を見てきました。を使用することをお勧めします。 printStackTrace() このメソッドは例外が発生する場所を指しているためです。