printStackTrace()和getMessage()方法的使用_printstacktrace()与getmessage-程序员宅基地

技术标签: java  java技术方面  

printStackTrace()方法:打印出所有与之相关的异常出处,换句话说就是不仅打印出异常名字还是显示出位置。便于程序的调试。

输出方式


/**
 * 获取e.printStackTrace() 的具体信息,赋值给String 变量,并返回
 * 
 * @param e
 *            Exception
 * @return e.printStackTrace() 中 的信息
 */
public static String getStackTraceInfo(Exception e) {
    
		StringWriter sw = null;
		PrintWriter pw = null;
		try {
    
		    sw = new StringWriter();
		    pw = new PrintWriter(sw);
		    e.printStackTrace(pw);//将出错的栈信息输出到printWriter中
		    pw.flush();
		    sw.flush();
		    return sw.toString();
		} catch (Exception ex) {
    
		    return "printStackTrace()转换错误";
		} finally {
    
		    if (sw != null) {
    
		        try {
    
		            sw.close();
		        } catch (IOException e1) {
    
		            e1.printStackTrace();
		        }
		    }
		    if (pw != null) {
    
		        pw.close();
		    }
		}
 }

缺点:
1、在部署到正式服,或者有日志系统不能规范的采集到异常错误,因为这种异常没有附加任何日志规范,比如日期,时间,等级,给日志分析带来了不便
2、e.printStackTrace() 语句要产生的字符串记录的是堆栈信息,太长太多,
要尽量少用,可能会导致锁死(详情

getMessage()方法:打印出具体异常的名字。不显示具体位置,不方便调试程序。

getMessage()直接返回的就是String

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011047145/article/details/106214645

智能推荐

Python教程:zip 函数的用法_python的zip用法-程序员宅基地

文章浏览阅读1.8w次,点赞19次,收藏72次。zip() 接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个 tuple,然后返回由这些 tuple 组成的 list。若传入参数的长度不等,则返回 list 的长度和参数中长度最短的对象相同。利用 * 号操作符,可以将 list 解压。Python3.0开始,zip()函数已经不返回 list 了,而是返回 iterable(可迭代对象)。这个可迭代对象需要特别注意,只能进行一次迭代遍历,第二次遍历就是空了。这个坑了我一个多小时。简单示例a = [1, 2, 3]b = [4, _python的zip用法

vue中$emit触发的事件,$on 第一次监听不到数据,利用eventBus解决,并进行页面动态响应_this.$nuxt $emit后的数据没有监听到-程序员宅基地

文章浏览阅读7.5k次,点赞2次,收藏9次。组件与页面之间想通过$ emit,来触发一个事件,传递数据,可是当在目标页面利用$on监听事件,获取数据时,发现第一次并不能监听到事件,而返回再次点击就可以监听到数据。原因在于$ emit 先于$ on 执行了,Vue并没有储存监听事件,所以无法监听到数据。因为不想用vuex来解决,所以利用eventBus来解决,而且组件不直接通过$on来存储数据,而是利用bus实例来存储数据,然后组件只负责..._this.$nuxt $emit后的数据没有监听到

809 协议相关_809协议-程序员宅基地

文章浏览阅读442次。809 协议。_809协议

RGBA与RGB和区别与转换_rgba和rgb-程序员宅基地

文章浏览阅读3.8w次,点赞5次,收藏25次。R:红色值。正整数 | 百分数G:绿色值。正整数 | 百分数B:蓝色值。正整数 | 百分数A:Alpha透明度。取值0~1之间。(颜色的透明度)此色彩模式与RGB相同,RGB定义了颜色的红绿蓝值,在RGB模式上新增了Alpha透明度.alpha通道一般用作不透明度参数。如果一个像素的alpha通道数值为0%,那它就是完全透明的(也就是看不见的),而数值为100%_rgba和rgb

安装Cloudera Manager出现的错误_differs from the canonical name-程序员宅基地

文章浏览阅读2k次。1、hostname localhost.localdomain differs from the canonical name localhost解决方法:CentOS7查看hostnameCentOS6查看vim /etc/sysconfig/network发现与/etc/hostname中的不一致运行命令hostnamectl set-hostname XXX2..._differs from the canonical name

制造大迷局:一边全球造假,一边卡世界脖子-程序员宅基地

文章浏览阅读94次。盘子刷七遍、马桶水可以喝、一辈子就为煮好一碗饭……篡改质检报告、专业造假几十年……究竟哪个才是日本制造业的真相?

随便推点

PB转纯BS工具_pbtoweb-程序员宅基地

文章浏览阅读405次。窗口将转化为web窗口form.js 其中pbcode为pb导出的源码目录, w_test_amis为要导出窗口的名称, d:/form.js为导出的代码目录 --js表示导出为js窗口。可以在事件中添加自己的处理代码,控件操作和pb中基本一致。更多信息,QQ群:836173975。导出后的form.js类似这样。_pbtoweb

双口ram存储器_C程序如何存储在RAM存储器中-程序员宅基地

文章浏览阅读380次。双口ram存储器 当您运行任何C程序时,其可执行映像都会以有组织的方式加载到计算机的RAM中,这称为C程序的进程地址空间或内存布局。 在这里,我试图分两部分向您展示同一件事。 /!\:最初发布于www.vishalchovatiya.com 。 在第1部分(即“概述”)中,我们将看到逐段概述;在第2部分(即“示例”)中,我们将看到C程序如何存储在RAM存储器中? 举个例子。 第1部分..._c __at (ram_addr)

navicat不能创建函数_navicat invaild stored procedure syntax-程序员宅基地

文章浏览阅读4.7k次。第一次写MySQL FUNCTION,一直报错,Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`company_id` int) RETURNS v_navicat invaild stored procedure syntax

android中activity的四种加载模式_android activity加载-程序员宅基地

文章浏览阅读1.8w次,点赞2次,收藏26次。一、何为加载模式在android的多activity开发中,activity之间的跳转可能需要有多种方式,有时是普通的生成一个新实例,有时希望跳转到原来某个activity实例,而不是生成大量的重复的activity。加载模式便是决定以哪种方式启动一个跳转到原来某个Activity实例。二、加载模式有哪些以及如何配置1、在android里面,activity有四种加载模式:standard, singleTop, singleTask, singleInstance 。详细介绍在后面。2、配置方法直接修改A_android activity加载

Unity 2d 与NPC对话的实现_unity 2d 对话 确认-程序员宅基地

文章浏览阅读5.7k次,点赞5次,收藏96次。NPC的架构未触发前任务完成前任务完成后脚本需要在脚本属性指定按键提示、对话框、还有对话框的文本using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class NPCManager : MonoBehaviour{ public GameObject dialogImage; pub_unity 2d 对话 确认

React系列-初始化React脚手架_react初始化框架install-程序员宅基地

文章浏览阅读127次。xxx脚手架:用来帮助程序员快速创建一个基于xx库的模板项目包含了所有需要的配置(语法检查,jsx编译,devServer)下载好了所有相关的依赖项目的整体技术架构为:react+webpack+es6+eslint创建步骤:全局安装:npm install -g create-react-app切换到想创建项目的目录,使用命令:create-react-app hello-reactyarn start 启动服务yarn build 打包yarn test 测试_react初始化框架install