“全栈2019”Java异常第十四章:将异常输出到文本文件中

难度
初级
学习时间
30分钟
适合人群
零基础
开发语言
Java
开发环境JDK v11IntelliJ IDEA v2018.3友情提示本教学属于系列教学 , 内容具有连贯性,本章使用到的内容之前教学中都有详细讲解 。本章内容针对零基础或基础较差的同学比较友好 , 可能对于有基础的同学来说很简单,希望大家可以根据自己的实际情况选择继续看完或等待看下一篇文章 。谢谢大家的谅解!1.实际开发的需求
将异常写到文本文件有实际需求吗?
有 。在实际项目中,我们对于异常的处理不光要记录在日志中 , 而且还要写入文件中,然后将其存储起来 。
这样做的目的是什么?
这样做的目的只有一个,那就是为了日后好做分析 。
收集错误信息,然后改进程序,这是做好程序开发的必备技能 。
请问我们日常在使用电脑的过程有哪些收集错误信息的例子?
例子比较多,这里举两个例子 。
比如大家熟悉的蓝屏,蓝屏的界面会出现一行正在收集错误信息的字而且还要收集进度条;
再比如我们有些程序崩溃了之后,要求你上报错误信息,这都是在收集错误信息 , 收集它们是为了研发和改进我们的程序 。
2.准备文件
今天就和大家一起来研究这么将异常写入文件中 。
既然是要将异常写入文件中,那么我们肯定得准备文件 。所以,请大家打开你的IntelliJ IDEA , 然后在IntelliJ IDEA中打开你的项目,在你的项目src目录下新建一个error.txt文件 。
可能大家从图中看到了lab包和main包,其中lab包是我给大家演示时用的包,大家不用建;main包是我放Main.java的包,大家也可以像我一样将Main.java放在里面 。
注意:
这里为了演示,所以文件格式是txt,实际开发中是log,而且实际开发中异常用日志来记录是通过配置文件实现自动化的,但是我们今天演示的原理和那个差不多,请大家务必担心 , 很多东西都是由基础的建设发展而来的,只要我们搞清楚基础的东西遇到复杂点的技术一样能够弄明白它里面是怎么实现的 , 希望大家能够通过牢牢掌握基础知识增强自信心 。
3.准备异常
文件准备好了,我们来准备程序和异常 。我们的程序在Main类中:
程序很简单,就是main()调用a() , a()调用b() , b()调用c(),c()里面发生异常 。这样写没有特殊的原因,就是异常打印的结果看起来更多而已 。
运行程序,执行结果:
这个结果我们应该已经很熟悉了,上一章我们对此进行过分析 。没有看过的小伙伴可以去看一下:《“全栈2019”Java异常第十三章:访问异常堆栈跟踪信息》 。
回到结果中来 , 我们可以看到异常被打印在了控制台,这是方便我们调试 。接下来 , 我们要将异常记录到error.txt文件中 。
4.将异常记录到文件中
文件也准备了,异常程序也准备了,接下来正式开工,将异常记录到文件中 。
我们知道异常发生以后,由catch复制捕获异常,然后我们得以有机会去处理该异常,所以我们能将异常记录到文件中的地方就在catch中:
这也是我们唯一的机会 。
记录异常需要借助一个方法,这个方法就是printStackTrace?()的重载方法:
voidprintStackTrace?(PrintWriter s)
它需要一个参数PrintWriter对象,而PrintWriter是一个打印输出流,打印输出流没学没有关系 , 你只需知道单词Writer翻译过来是写的意思,顾名思义就是写什么东西到什么地方 。综上所述 , 就是printStackTrace?(PrintWriter s)方法负责将异常写到你指定的地方中去 。
多说无益,直接改写我们的程序 。
在改写我们程序之前 , 首先请大家负责刚刚我们创建的error.txt文件路径,因为接下来要用:
具体负责操作就是右键error.txt,然后选择“Copy Path”即可 。
接着 , 我们来改写我们的程序 。
首先,我们创建PrintWriter对象:
然后,将我们的文件路径传进去:
紧接着,我们会遇到一个FileNotFoundException异常需要处理,处理方式就是将其throws出去:
然后,我们就在调用者b()方法里面进行try-catch处理:
接下来,我们就调用异常对象的printStackTrace?(PrintWriter s)方法,并将PrintWriter对象传进去:
工作好像已经都做完了,我们来运行程序看看:
控制台没有任何东西,好像程序本身执行没
上一章
“全栈2019”Java异常第十三章:访问异常堆栈跟踪信息
下一章
“全栈2019”Java异常第十五章:异常链详解
学习小组
加入同步学习小组 , 共同交流与进步 。
方式一:关注
【“全栈2019”Java异常第十四章:将异常输出到文本文件中】以上就是朝夕生活(www.30zx.com)关于““全栈2019”Java异常第十四章:将异常输出到文本文件中”的详细内容,希望对大家有所帮助!

猜你喜欢