スタックトレース
研修の課題をやっていたときに、始めてみた言葉です。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
スタックトレース内の要素で、
上は、直接APIの言葉を引用しただけです、
使い方は下になります。
実際のソースコード:
DivZeroException.java
ExceptionChane.java
DivisionProcessing.java
上のソースコードを実行した結果:
[xxxx@loveapple ActiveWork]$ java ExceptionChane
40
正常時スタックトレース情報のクラス名:ExceptionChane
正常時スタックトレース情報のメソッド名:main
正常時スタックトレース情報のファイル名:ExceptionChane.java
正常時スタックトレース情報のステップ数:27
カウント:1
4
正常時スタックトレース情報のクラス名:ExceptionChane
正常時スタックトレース情報のメソッド名:main
正常時スタックトレース情報のファイル名:ExceptionChane.java
正常時スタックトレース情報のステップ数:27
カウント:2
-5
正常時スタックトレース情報のクラス名:ExceptionChane
正常時スタックトレース情報のメソッド名:main
正常時スタックトレース情報のファイル名:ExceptionChane.java
正常時スタックトレース情報のステップ数:27
カウント:3
20
正常時スタックトレース情報のクラス名:ExceptionChane
正常時スタックトレース情報のメソッド名:main
正常時スタックトレース情報のファイル名:ExceptionChane.java
正常時スタックトレース情報のステップ数:27
カウント:4
例外時スタックトレース情報のクラス名:ExceptionChane
例外時スタックトレース情報のメソッド名:main
例外時スタックトレース情報のファイル名:ExceptionChane.java
例外時スタックトレース情報のステップ数:27
!!!!!!除算数が0の時、DivZeroException 例外です。!!!!!!
DivZeroExceptionスタックトレース情報クラス名:DivZeroException
DivZeroExceptionスタックトレース情報のメソッド名:
DivZeroExceptionスタックトレース情報のファイル名:DivZeroException.java
DivZeroExceptionスタックトレース情報のステップ数:11
面白い記事も見つかった:
http://codezine.jp/a/article.aspx?aid=124
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
スタックトレース内の要素で、
Throwable.getStackTrace()
により返される値。各要素は単一のスタックフレームを表します。スタックの先頭にあるスタックフレームを除く、すべてのスタックフレームは、メソッド呼び 出しを表します。スタックの先頭のフレームは、スタックトレースが生成された実行ポイントを表します。通常、これは、スタックトレースに対応するスロー可 能オブジェクトが作成されたポイントになります。上は、直接APIの言葉を引用しただけです、
使い方は下になります。
「StackInfo.java」
public class StackInfo {
public class StackInfo {
public static void main(String[] args) {
Throwable t = new Throwable();
StackTraceElement[] ste = t.getStackTrace();
System.out.println("class=" + ste[0].getClassName());
System.out.println("method=" + ste[0].getMethodName());
System.out.println("file=" + ste[0].getFileName());
System.out.println("line=" + ste[0].getLineNumber());
}
}
DivZeroException.java
ExceptionChane.java
DivisionProcessing.java
上のソースコードを実行した結果:
[xxxx@loveapple ActiveWork]$ java ExceptionChane
40
正常時スタックトレース情報のクラス名:ExceptionChane
正常時スタックトレース情報のメソッド名:main
正常時スタックトレース情報のファイル名:ExceptionChane.java
正常時スタックトレース情報のステップ数:27
カウント:1
4
正常時スタックトレース情報のクラス名:ExceptionChane
正常時スタックトレース情報のメソッド名:main
正常時スタックトレース情報のファイル名:ExceptionChane.java
正常時スタックトレース情報のステップ数:27
カウント:2
-5
正常時スタックトレース情報のクラス名:ExceptionChane
正常時スタックトレース情報のメソッド名:main
正常時スタックトレース情報のファイル名:ExceptionChane.java
正常時スタックトレース情報のステップ数:27
カウント:3
20
正常時スタックトレース情報のクラス名:ExceptionChane
正常時スタックトレース情報のメソッド名:main
正常時スタックトレース情報のファイル名:ExceptionChane.java
正常時スタックトレース情報のステップ数:27
カウント:4
例外時スタックトレース情報のクラス名:ExceptionChane
例外時スタックトレース情報のメソッド名:main
例外時スタックトレース情報のファイル名:ExceptionChane.java
例外時スタックトレース情報のステップ数:27
!!!!!!除算数が0の時、DivZeroException 例外です。!!!!!!
DivZeroExceptionスタックトレース情報クラス名:DivZeroException
DivZeroExceptionスタックトレース情報のメソッド名:
DivZeroExceptionスタックトレース情報のファイル名:DivZeroException.java
DivZeroExceptionスタックトレース情報のステップ数:11
面白い記事も見つかった:
http://codezine.jp/a/article.aspx?aid=124
コメント
コメントを投稿