繁体   English   中英

将堆栈跟踪打印到textarea

[英]Printing Stack Trace to textarea

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

        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跟踪。 为什么不将字符串编写器冲洗掉?

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

请提出正确的方法。

StringWriterflush方法什么都不做! flush方法仅与java.io.Writer兼容。

StringWriter来源:

/**
 * Flush the stream.
 */
public void flush() {
}

然后PrintWriter调用StringWriter flush方法...

PrintWriter来源:

/**
 * Flushes the stream.
 * @see #checkError()
 */
public void flush() {
    try {
        synchronized (lock) {
            ensureOpen();
            out.flush();
        }
    }
    catch (IOException x) {
        trouble = true;
    }
}

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

见:

用Java刷新StringWriter有什么意义?

您如何在Java中“清空” StringWriter?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM