首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将堆栈跟踪打印到文本区域

将堆栈跟踪打印到文本区域
EN

Stack Overflow用户
提问于 2015-07-07 18:06:53
回答 1查看 376关注 0票数 0

我使用以下代码将堆栈跟踪打印到JTextArea

代码语言:javascript
复制
        try
        {
            throw new IOException();
        }
        catch(IOException e)
        {
            e.printStackTrace(pw);
            ta1.append(sw.toString());
        }
        pw.flush();
        sw.flush();
        try
        {
            throw new SQLException();
        }
        catch(SQLException e)
        {
            e.printStackTrace(pw);
            ta1.append(sw.toString());
        }

它打印出2个IOException轨迹和1个SQLExeption轨迹。为什么stringwriter没有被冲出来?

我想要一个IOException跟踪和一个SQLExeption跟踪。

请建议正确的方法来做这件事。

EN

回答 1

Stack Overflow用户

发布于 2015-07-07 21:48:17

StringWriterflush方法什么也不做!flush方法就是为了与java.io.Writer兼容。

StringWriter来源:

代码语言:javascript
复制
/**
 * Flush the stream.
 */
public void flush() {
}

PrintWriter调用StringWriter flush方法...

PrintWriter来源:

代码语言:javascript
复制
/**
 * Flushes the stream.
 * @see #checkError()
 */
public void flush() {
    try {
        synchronized (lock) {
            ensureOpen();
            out.flush();
        }
    }
    catch (IOException x) {
        trouble = true;
    }
}

因此,如果您想清除pwsw,就不应该使用flush方法。您需要创建一个新的。

请参见:

What sense does it make to flush a StringWriter in Java?

How do you "empty" a StringWriter in Java?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31265615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档