Java例外におけるStringWriter/PRintWriterの役割

1469 ワード

Javaではtry.catch(..finally)文を使用して例外をキャプチャおよび処理でき、非常に便利です.catchブロックの一般的な例外処理は、例外をログファイルに出力するなど、例外を出力することです.
ExceptionクラスにはprintStackTrace()メソッドがあり、例外が発生したメソッドからスタック情報を出力できます.デフォルトの出力位置はSystem.errです.ただし、例外が発生した場合にスタック情報をemailに出力したり、ダイアログボックスで表示したりするなど、スタック情報をSystem.err以外の場所に出力する場合があります.
printStackTrace()メソッドには、いくつかの異なるタイプがあります.
・printStackTrace()は、標準エラーフローに出力される.
・printStackTrace(PrintStreams ps)は、psというPrintStreamに出力される.
・printStackTrace(PrintWriter pw)は、pwというPrintWriterに出力される.
スタック情報をStringオブジェクトに保存するには、最後のprintStackTrace()メソッドを使用します.Stringオブジェクトでスタック情報をキャプチャすれば、アプリケーションのどこでも簡単に使用できます.次のコード・スライスは、具体的な実装手順を示しています.
private String getStackTraceAsString() {
    // StringWriter       
    StringWriter stringWriter = new StringWriter();
    //   StringWriter   PrintWriter  ,
    //   printStackTrace   
    PrintWriter printWriter = new PrintWriter(stringWriter);
    //      
    e.printStackTrace(printWriter);
    //   String,    String
    StringBuffer error = stringWriter.getBuffer();
    return error.toString();
}

このブログはStringWriter/printWriterから転載され、著者はyuhua 3272004