Java:如何获取错误信息?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:如何获取错误信息?相关的知识,希望对你有一定的参考价值。

平时抛出错误都是e.printStack之类的输出到控制台,但是现在的需求是能够明确抛出的异常类型,该如何实现呢?大神给个思路吧

建议建一个自定义异常,扑捉异常时,可以分级扑捉的,例如io,file等,最好不要直接Exception来扑捉。根据不同异常设置自定义异常内容属性,再将自定义异常抛出。 参考技术A 我觉得,你可以看一下,抛出什么类型的异常,然后在 new throw 对应异常 出去。如果不知道类型 就用Exception类型。 参考技术B e.message 等等 你点试试看看

java中如何获取 控制台的输出信息,错误信息,和异常信息。

java中如何获取 控制台的输出信息,错误信息,和异常信息。并把它们输入到一个文件中。请大侠们给小弟一个简单的例子。

参考技术A 很简单的,如果你查api文档会发现类System有个“字段摘要”,很容易发现有个out,
它返回static PrintStream,还会发现System有个方法是static void setOut(PrintStream out)
重新分配“标准”输出流。 再点击PrintStream,很明显它是OutputStream
的子类 解决如下
输出流重定向

import java.io.*;

public class IO2File
public static void main(String[] args) throws IOException

File f=new File("out.txt");
f.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(f);
PrintStream printStream = new PrintStream(fileOutputStream);
System.setOut(printStream);
System.out.println("默认输出到控制台的这一句,输出到了文件 out.txt");

追问

但是有异常信息呢!有没有用??

追答

查api文档你就会看到每个异常的父类是Exception
从api上可以看到Exception的父类时Throwable
你该知道正常情况下异常是这样打印到控制台的e.printStackTrace()
这个方法后面有解释:将此 throwable 及其追踪输出至标准错误流。
如果你仔细就会发现下面有一个方法是你想要的void printStackTrace(PrintStream s)
将此 throwable 及其追踪输出到指定的输出流。
下面不用说了吧

本回答被提问者采纳
参考技术B 对的,log4j日志文件啊! 参考技术C 用log4j也能放入到文本文件吧 参考技术D 不知道你是否是想记录到日志,如果是想记录到日志的话就使用Log4j。追问

不是啦,我就是想要取得信息 ,把它放到一个文本文件里去。大侠,帮帮忙!

以上是关于Java:如何获取错误信息?的主要内容,如果未能解决你的问题,请参考以下文章

java 里面 如何 获取 sql 运行数据库报错的信息

淘宝api调用问题,如何用java获取到error信息。

REACT 中的 fetch() 失败,没有 statusText 也没有 json 正文。如何获取有关错误的额外信息?

java如何获取系统内存、cpu等信息。

如何获取 Java 图形位置信息?

java如何获取Linux操作系统下的硬件信息