可以使用java.util.logging工具将输出记录在日志中。记录日志的的功能还是很简单的,下面直接铺出代码:

 1 package com.exceptions;
 2
 3 import java.io.*;
 4 import java.util.logging.Logger;
 5
 6 class LoggingException extends Exception{
 7     private static Logger logger =
 8             Logger.getLogger("LoggeringException");
 9     public LoggingException(){
10         StringWriter trace = new StringWriter();
11         printStackTrace(new PrintWriter(trace));
12         logger.severe(trace.toString());
13     }
14 }
15
16 public class LoggingExceptions {
17     public static void main(String [] args)
18     {
19         try{
20             throw new LoggingException();
21         }catch(LoggingException e){
22             System.err.println("Caught"+ e);
23         }
24         try{
25             throw new LoggingException();
26         }catch(LoggingException e){
27             System.out.println("Caught"+ e);
28         }
29     }
30 }

结果:

 1 六月 22, 2014 9:32:41 下午 com.exceptions.LoggingException <init>
 2 严重: com.exceptions.LoggingException
 3     at com.exceptions.LoggingExceptions.main(LoggingExceptions.java:20)
 4
 5 Caughtcom.exceptions.LoggingException
 6 六月 22, 2014 9:32:41 下午 com.exceptions.LoggingException <init>
 7 严重: com.exceptions.LoggingException
 8     at com.exceptions.LoggingExceptions.main(LoggingExceptions.java:25)
 9
10 Caughtcom.exceptions.LoggingException
  尽管LoggingException将所有日志的基础设施都构建在异常自身中,使得它所使用的方式非常方便,并因此不需要客户端程序员的干预就可以自动运行,但是更常见的情形是我们需要捕获和记录其他人编写的异常,因此我们必须在异常处理程序中生成日志消息:
 1 /**
 2  *
 3  */
 4 package com.exceptions;
 5
 6 import java.util.logging.Logger;
 7 import java.io.*;
 8
 9 public class LoggingExceptions2 {
10
11     /**
12      * @param args
13      */
14     private static Logger logger =
15             Logger.getLogger("LoggingExceptions");
16     static void logException(Exception e){
17         StringWriter trace = new StringWriter();
18         e.printStackTrace(new PrintWriter(trace));
19         logger.severe(trace.toString());
20     }
21     public static void main(String[] args) {
22         // TODO Auto-generated method stub
23         try{
24             throw new NullPointerException();
25         }catch(NullPointerException e){
26             logException(e);
27         }
28     }
29
30 }

结果:

六月 22, 2014 9:47:03 下午 com.exceptions.LoggingExceptions2 logException
严重: java.lang.NullPointerException
at com.exceptions.LoggingExceptions2.main(LoggingExceptions2.java:24)

转载于:https://www.cnblogs.com/fxyfirst/p/3803102.html

Java-- 异常与记录日志相关推荐

  1. java的异常与记录日志

    今天在<java编程思想>一书中看到了异常与记录日志,发现学会将异常记录进日志中还是很有必要的,以下是书中的例子: 1 import java.io.PrintWriter; 2 impo ...

  2. java异常对象引用变量_Java面向对象编程-异常处理

    第九章 异常处理 异常情况会改变正常的流程,导致恶劣的后果,为了减少损失,应该事先充分预料所有可能出现的异常,然后采取以下措施: 首先考虑避免异常,彻底杜绝异常的发生:如果不能完全避免,则尽可能地减少 ...

  3. java 异常_Java 进阶之异常处理

    本文的主要内容分为 Java 异常的定义.Java 异常的处理.JVM 基础知识(异常表.JVM 指令分类和操作数栈)及深入剖析 try-catch-finally 四部分(图解形式).在深入剖析 t ...

  4. 深入浅出详细介绍Java异常,让你茅塞顿开般的感觉

    零基础学习之Java异常 概述 基本介绍 Error 代码示例 Exception 代码示例 异常的处理 throw 代码示例 throws 代码示例 try-catch 代码示例 finally块 ...

  5. 最最最全面的Java异常面试及解答

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | ThinkWon 来源 | blog.csdn ...

  6. java异常错误的是,java 异常 错误处理

    场景:thinking in java 学习笔记 12 通过错误处理异常 thinking in java 学习笔记 12 通过异常处理错误 第十二章 通过异常处理错误 在以前平时的编程中没有真正意思 ...

  7. 高效的java异常(Effective Java Exceptions)

    摘要 Java开发人员可以做出的最重要的架构决策之一是如何使用Java异常模型.Java异常一直是社区争论的主题. 有些人认为Java语言中的checked(受检)异常是一个失败的实验. 本文认为,错 ...

  8. java 中的finally你知多少_「JAVA」详述Java异常体系,处理异常时配上finally效果更佳...

    什么是异常 从事Java开发的小伙伴对于"异常"应该不陌生,因为每天都会遇到不少异常,或捕获,或抛出.那究竟什么是异常?异常即非正常的,不同于平常.一般化的情况.在平时生活中,医生 ...

  9. 【SE】:Java异常、由浅入深、由原理入面试题

    Java异常架构与关键字 异常处理机制 捕获异常:try-catch-finally try-catch的使用规则: try-catch-finally中finally的使用: 声明异常:throws ...

  10. 两万字详解Java异常,面试再也不怕被问到!

    点击关注公众号,利用碎片时间学习 Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提 ...

最新文章

  1. 如何在TVM上集成Codegen(上)
  2. 个人知识管理系统 mysql_个人知识管理系统Version1.0开发记录(04)
  3. 不做“浮冰”,深挖AI技术和场景
  4. mysql insert 1062_一则 insert 报 ERROR 1062 (23000): Duplicate entry 'xxx' for key,请帮忙看看...
  5. 06-Java 本地文件操作
  6. deepin 安装cuda 编译 ffmpeg
  7. Multiprocessing Manager
  8. Hibernate POJO在序列化(JSON)时遇到的若干问题
  9. 浅谈css样式(border、background、table)
  10. Appium - WebView測试(Android)
  11. highcharts饼图
  12. jooq spring mysql_【中级篇】详细讲解使用SpringBoot + Jooq整合(一)
  13. 地图 显示 动态轨迹_野外探路必备神器——奥维互动地图浏览器
  14. 一名优秀的数据分析师应该具备这10项关键技能
  15. python拦截广告弹窗_电脑总是有弹窗广告,真的烦人,一招教你解决!
  16. 激光投影仪和大屏液晶电视有哪些优缺点?二者应该怎么选?
  17. HTML如何制作音乐网站(如何搭建个人音乐网页)
  18. Mac 下 移动硬盘只读解决方案
  19. “希希敬敬对”团队作业——敏捷冲刺7
  20. div标签,h标签,p标签,hr标签

热门文章

  1. 使用wrapper将java程序注册程windows服务后不生效
  2. JSP自定义标签_用简单标签控制标签体执行10次
  3. Neurocomputing 投稿注意事项
  4. Application Verifier
  5. python程序设计语言的执行方式_编程语言用Python执行程序的4种方式
  6. 运行错误5无效的过程调用或参数_FANUC系统常用参数汇总
  7. Matlab矩阵替换所有等于某个值的数
  8. MFC处理回车窗口消失
  9. 产品经理怎么管理项目进度?
  10. 《鸿蒙理论知识04》HarmonyOS概述之系统定义