Throwable.PrintStackTrace メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| PrintStackTrace(PrintStream) |
このスロー可能なオブジェクトとそのバックトレースを、指定された印刷ストリームに出力します。 |
| PrintStackTrace(PrintWriter) |
このスロー可能ファイルとそのバックトレースを、指定された印刷ライターに出力します。 |
| PrintStackTrace() |
このスロー可能とそのバックトレースを標準エラー ストリームに出力します。 |
PrintStackTrace(PrintStream)
このスロー可能なオブジェクトとそのバックトレースを、指定された印刷ストリームに出力します。
[Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintStream;)V", "GetPrintStackTrace_Ljava_io_PrintStream_Handler")]
public virtual void PrintStackTrace(Java.IO.PrintStream s);
[<Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintStream;)V", "GetPrintStackTrace_Ljava_io_PrintStream_Handler")>]
abstract member PrintStackTrace : Java.IO.PrintStream -> unit
override this.PrintStackTrace : Java.IO.PrintStream -> unit
パラメーター
PrintStream 出力に使用する
- 属性
注釈
このスロー可能なオブジェクトとそのバックトレースを、指定された印刷ストリームに出力します。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
PrintStackTrace(PrintWriter)
このスロー可能ファイルとそのバックトレースを、指定された印刷ライターに出力します。
[Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintWriter;)V", "GetPrintStackTrace_Ljava_io_PrintWriter_Handler")]
public virtual void PrintStackTrace(Java.IO.PrintWriter s);
[<Android.Runtime.Register("printStackTrace", "(Ljava/io/PrintWriter;)V", "GetPrintStackTrace_Ljava_io_PrintWriter_Handler")>]
abstract member PrintStackTrace : Java.IO.PrintWriter -> unit
override this.PrintStackTrace : Java.IO.PrintWriter -> unit
パラメーター
PrintWriter 出力に使用する
- 属性
注釈
このスロー可能ファイルとそのバックトレースを、指定された印刷ライターに出力します。
1.1 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
PrintStackTrace()
このスロー可能とそのバックトレースを標準エラー ストリームに出力します。
[Android.Runtime.Register("printStackTrace", "()V", "GetPrintStackTraceHandler")]
public virtual void PrintStackTrace();
[<Android.Runtime.Register("printStackTrace", "()V", "GetPrintStackTraceHandler")>]
abstract member PrintStackTrace : unit -> unit
override this.PrintStackTrace : unit -> unit
- 属性
注釈
このスロー可能とそのバックトレースを標準エラー ストリームに出力します。 このメソッドは、この Throwable オブジェクトのスタック トレースを、 System.errフィールドの値であるエラー出力ストリームに出力します。 出力の最初の行には、このオブジェクトの #toString() メソッドの結果が含まれています。 残りの行は、メソッド #fillInStackTrace()によって以前に記録されたデータを表します。 この情報の形式は実装によって異なりますが、次の例は一般的と見なされる場合があります: <blockquote>
java.lang.NullPointerException
at MyClass.mash(MyClass.java:9)
at MyClass.crunch(MyClass.java:6)
at MyClass.main(MyClass.java:3)
</blockquote> この例は、プログラムを実行して生成されました。
class MyClass {
public static void main(String[] args) {
crunch(null);
}
static void crunch(int[] a) {
mash(a);
}
static void mash(int[] b) {
System.out.println(b[0]);
}
}
初期化された null 以外の原因でスロー可能なバックトレースには、通常、原因のバックトレースを含める必要があります。 この情報の形式は実装によって異なりますが、次の例は一般的と見なされる場合があります。
HighLevelException: MidLevelException: LowLevelException
at Junk.a(Junk.java:13)
at Junk.main(Junk.java:4)
Caused by: MidLevelException: LowLevelException
at Junk.c(Junk.java:23)
at Junk.b(Junk.java:17)
at Junk.a(Junk.java:11)
... 1 more
Caused by: LowLevelException
at Junk.e(Junk.java:30)
at Junk.d(Junk.java:27)
at Junk.c(Junk.java:21)
... 3 more
"..."文字を含む行が存在することに注意してください。 これらの行は、この例外のスタック トレースの残りの部分が、この例外によって発生した例外 ("外側" 例外) のスタック トレースの下部にある指定されたフレーム数と一致することを示します。 この短縮形は、ラップされた例外が "因果的な例外" がキャッチされるのと同じメソッドからスローされる一般的なケースで、出力の長さを大幅に短縮できます。 上記の例は、プログラムを実行して生成されました。
public class Junk {
public static void main(String args[]) {
try {
a();
} catch(HighLevelException e) {
e.printStackTrace();
}
}
static void a() throws HighLevelException {
try {
b();
} catch(MidLevelException e) {
throw new HighLevelException(e);
}
}
static void b() throws MidLevelException {
c();
}
static void c() throws MidLevelException {
try {
d();
} catch(LowLevelException e) {
throw new MidLevelException(e);
}
}
static void d() throws LowLevelException {
e();
}
static void e() throws LowLevelException {
throw new LowLevelException();
}
}
class HighLevelException extends Exception {
HighLevelException(Throwable cause) { super(cause); }
}
class MidLevelException extends Exception {
MidLevelException(Throwable cause) { super(cause); }
}
class LowLevelException extends Exception {
}
リリース 7 の時点で、プラットフォームは 抑制された例外 の概念をサポートしています ( try-with-resources ステートメントと組み合わせて)。 例外を配信するために抑制された例外は、スタック トレースの下に出力されます。 この情報の形式は実装によって異なりますが、次の例は一般的と見なされる場合があります。
Exception in thread "main" java.lang.Exception: Something happened
at Foo.bar(Foo.java:10)
at Foo.main(Foo.java:5)
Suppressed: Resource$CloseFailException: Resource ID = 0
at Resource.close(Resource.java:26)
at Foo.bar(Foo.java:9)
... 1 more
に注意してください。n more" 表記は、原因で使用されるのと同様に、抑制された例外で使用されます。 原因とは異なり、抑制された例外は、"例外を含む" を超えてインデントされます。
例外には、原因と抑制された例外が 1 つ以上含まれる場合があります。
Exception in thread "main" java.lang.Exception: Main block
at Foo3.main(Foo3.java:7)
Suppressed: Resource$CloseFailException: Resource ID = 2
at Resource.close(Resource.java:26)
at Foo3.main(Foo3.java:5)
Suppressed: Resource$CloseFailException: Resource ID = 1
at Resource.close(Resource.java:26)
at Foo3.main(Foo3.java:5)
Caused by: java.lang.Exception: I did it
at Foo3.main(Foo3.java:8)
同様に、抑制された例外の原因が考えられます。
Exception in thread "main" java.lang.Exception: Main block
at Foo4.main(Foo4.java:6)
Suppressed: Resource2$CloseFailException: Resource ID = 1
at Resource2.close(Resource2.java:20)
at Foo4.main(Foo4.java:5)
Caused by: java.lang.Exception: Rats, you caught me
at Resource2$CloseFailException.<init>(Resource2.java:45)
... 2 more
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。