当java捕获到异常时,把详细的堆栈信息打印出来有助于我们排查异常原因,并修复相关bug,比如下面两张图,是打印未打印堆栈信息和打印堆栈信息的对比: 那么在使用log4j输出日志时,使用org.apache.logging.log4j.Logger.error(String message, Throwable t)方法来输出日志就可以了.代码对比如下:…
日志:除了能记录异常信息,还可以记录程序正常运行时的关键信息. 使用log4j来进行日志文件记录经典步骤: 001.在项目中创建一个lib文件夹,然后将下载好的jar包copy到该文件夹下 002.对已经copy过来的jar包,点击右键,然后执行下图操作, 项目中就会多出一个引入外部Library的项目 003.在src目录下创建一个名称为log4j.properties文件 004.编写,粘贴已经写好的配置文件内容,编码方式可以做下修正.对配置文件点击右键→属性→other→utf-8,然后应…
在程序开发中,有时我们不仅需要将异常堆栈信息打印在控制台里或是log里,可能还需要将它存在String中,再送到合适的地方,如错误页面,数据库等. 要取异常堆栈信息,具体的函数就是: /** * Get Exception heap/stack information * @param throwable * @return */ public static String getStackTrace(Throwable throwable) { StringWriter sw = new Str…
JAVA中的static的应用 在web项目的开发中,遇到了类中的static方法不奏效. 在开发过程中,我定义了一个静态方法初始化数组,但是在创建类的对象后,访问该数组是全为null.我一直以为static应该是在程序启动的时候已经加载并执行的,所以对这样的结果百思不得其解,最后我找到关于java中的static的方法应用的资料,研读后,发现静态方法和静态代码块是有区别的:静态代码块是自动执行的,静态方法是在被调用的时候才执行的. 总结static用法如下: (1)在java中可以定义一个不需…
应要求,本周制作了一个判断一个年份是否是闰年的程序.逻辑很简单,这里就不贴代码了.可是,在这次程序编写中发现了一个问题. 在输入年份时,如果输入1)字母2)空3)超过Int上限时,就会抛exception. 问题出在String转Int型时. 首先,在java中String转换为Int主要有两种方法 1.Integer.parseInt(s) 2.Integer.valueOf(s).intValue(); 这两种方法略有不同,之后再跟大家分析. 首先我使用第一种方法,当测试数据为正常的年份时,…
JAVA 中为快速定位,抛出异常的位置.往往需要在日志中描述. log.err("异常出错点", e); 会将出错时的堆栈信息显示出来. package com.jqyc.jase; import static org.junit.Assert.*; import org.apache.log4j.Logger;import org.junit.Test; public class TestError { Logger log = Logger.getLogger(TestError.…
具体参考文档:https://blog.csdn.net/gatieme/article/details/84189280 测试Demo: #include <execinfo.h> #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <stddef.h> void print_trace(void) { void* array[30]; size_t size;…
在java程序里面的异或用法: 相同输出0,不同输出1,例如: System.out.println(1^1); 输出0 System.out.println(1^2):输出3,因为最后2个低位都不一样,所有输出3 异域的概念是相同为0不同为1.如果两个数值异或后的值相同,异或前可能不同. 比如二进制:0010^0001=0011 而0000^0011=0011. 异或要慎用. 已到有意思的题目:很多成对出现数字保存在磁盘文件中,注意成对的数字不一定是相邻的,如2, 3, 4, 3, 4, 2……
一般实现两个变量之间的互换要用第三个变量,这样做可以,但创建新变量,增加了系统开销.如果要交换的变量时两个整数型变量,可以用更高效的方法.例如:^(异或)操作,举例如下: package chapterOne; import java.util.Scanner; public class VariableExchange { public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.o…
try{ } catch (Exception e){ String msg=.getMessage(): int index= msg. toUpperCase(). indexOf("ORA-"); String msg1= null; if(index !=-1){ msg1= msg. substring(index 4, index +9); } cfContractInfoModel. setMsg(msg1); return cfContractInfoModel; }…
AOP 采用异常通知切入,把指定包的异常记录到日志文件. 先看log4j.properties ,控制台输出的是普通信息, 文件输出的是异常信息. log4j.rootLogger=DEBUG, Console log4j.logger.com.java1234.aop=error,appender1 #file E:/temp/test.txt E\:\\temp\\test.txt log4j.appender.appender1=org.apache.log4j.FileAppender…
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; im…
首先我们需要知道什么是异常? 常通常指,你的代码可能在编译时没有错误,可是运行时会出现异常.比如常见的空指针异常.也可能是程序可能出现无法预料的异常,比如你要从一个文件读信息,可这个文件不存在,程序无法运行下去了,故程序要抓这些异常,通过异常处理机制来抛出这些异常,程序员就可以通过抛出的异常来修改代码.{}try块中放入可能会出现异常的代码,catch块负责捕获异常,finally块负责处理一些必须执行的代码,比较关闭流等. 如何找出异常?(通过什么方式实现?) try{ 可能出现异常的语句 }…
WebView在加载失败时会显示一个失败原因的界面,各个手机显示的界面还都不一样,部分手机还会把Url显示出来:我们要做的就是统一加载失败的界面: 大概思路:在WebView这个控件上面再覆盖一个View,监听WebView加载失败时把这个View显示出来,这样用户就看不到原来的WebView的失败界面了. 监听WebView开始加载.加载完成.加载失败: 在开始加载时,把自定义失败的View隐藏,加载失败时把这个View显示出来: mWebView.setWebViewClient(new W…
如果想去除科学计数法显示可以用如下方法处理: /** * 把科学计数法显示出全部数字 * @param d */ public static String object2Str(Object d) { if (d == null) { return ""; } NumberFormat nf = NumberFormat.getInstance(); System.out.println(nf.format(d)); } --------------------- 原文:https:/…
先参考实现配置,如果想要更加详细的配置,可加上更多参数: log4j.rootLogger = INFO,FILE,CONSOLE log4j.appender.FILE.Threshold=INFO log4j.appender.FILE.encoding=UTF-8 log4j.appender.FILE = org.apache.log4j.DailyRollingFileAppender log4j.appender.FILE.File=d:/logtest/logtest.log lo…
1. 页面载入后,必须要等到page_Load方法执行建立 page对象后才可以使用Session 2. 在.aspx和.cs文件中使用Session的区别 (1).aspx: Session["dd"] (2).cs: HttpContext.Current.Session["dd"] 3. 自定义的HTTP处理程序,即从HttpHandler继承,在写System.Web.HttpContext.Current.Session["Name"]…
在eclipse中创建maven webapp项目时报错: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:1.0 from any of the configured repositories. 问题产生原因:是因为本地仓库中缺少了maven-archetype-webapp包,也可能这个包下载不完全,比如:只有pom文件,或只有jar包文件等   [包路径为:C:\Users\xxx…
其实,我真不会写嗯? package com.a.b; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class helloworld extends JFrame implements ActionListener { JButton jb = new JButton("请按下"); JTextField tf = new JT…
class Test{ public static void main(String[] args) { singleton s1=singleton.getinstance(); singleton s2=singleton.getinstance(); System.out.println(s1); System.out.println(s2); } } class singleton{ private final static singleton per=new singleton();…
一.问题场景 使用Logger.error方法时只能打印出异常类型,无法打印出详细的堆栈信息,使得定位问题变得困难和不方便. 二.先放出结论 Logger类下有多个不同的error方法,根据传入参数的个数及类型的不同,自动选择不同的重载方法. 当error(Object obj)只传入一个参数时会将异常对象作为Object使用,并最终当做String打印出来,当使用两个参数error(String message, Throwable t),且第二个参数为Throwable时,才会将完整的异常堆…
一. 异常的概念和Java异常体系结构  异常是程序运行过程中出现的错误.本文主要讲授的是Java语言的异常处理.Java语言的异常处理框架,     是Java语言健壮性的一个重要体现. Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类.     在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception. Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示…
Java中异常的分类 Java中的异常机制是针对正常运行程序的一个必要补充,一般来说没有加入异常机制,程序也能正常运营,但是,由于入参.程序逻辑的严谨度,总会有期望之外的结果生成,因此加入异常机制的补充,就是为了更好的处理意料之外的结果. 所有异常都继承与Exception类,但是异常本质上分为两种: 检查异常(CheckedException) 顾名思义,这个异常抛出来,我们可以抓住它(也就是传说中的try-catch-finally系列),这类异常通常是在设计者考虑之内的 .可处理异常,譬如…
ref:http://www.xwood.net/_site_domain_/_root/5870/5874/t_c268166.html 标签:安全,漏洞,健壮,java,SQL注入,SS及CSRF,命令注入,线程安全     发布时间:2017-09-16    一.前言 这边通过工作整理一些常见安全漏洞及解决方法,主要涉及有:框架低版本漏洞.空指针的引用.整数溢出.命令注入.SQL注入.XSS及CSRF.跳转漏洞.HTTP Response Splitting漏洞.路径可控制及代码注入.资…
Java中的异常处理不是一个简单的话题.初学者很难理解,甚至有经验的开发人员也会花几个小时来讨论应该如何抛出或处理这些异常. 这就是为什么大多数开发团队都有自己的异常处理的规则和方法.如果你是一个团队的新手,你可能会惊讶于这些方法与你之前使用过的那些方法有多么不同. 然而,有几种异常处理的最佳方法被大多数开发团队所使用.下面是帮助改进异常处理的9个最重要的方法. 1. 在Finally中清理资源或者使用Try-With-Resource语句 通常情况下,你在try中使用了一个资源,比如 Inpu…
觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ... 3 try { // ⑸ 4 Statement stat = conn.createStatement(); 5 ResultSet rs = stat.executeQuery( 6 "select uid, name from u…
异常处理 使用Java异常处理机制: 把可能会发生错误的代码放进try语句块中. 当程序检测到出现了一个错误时会抛出一个异常对象. 异常处理代码会捕获并处理这个错误. catch语句块中的代码用于处理错误. 当异常发生时,程序控制流程由try语句块跳转到catch语句块. 不管是否有异常发生,finally语句块中的语句始终保证被执行. 如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序. 异常分类: Throwable类有两个直接子类: Exception:出现的问题是可以被捕获的:…
一:Error和Exception的基本概念: 首先Exception和Error都是继承于Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型. Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类,Exception和Error体现了JAVA这门语言对于异常处理的两种方式. Exception 是程序正常运行过程中可以预料到的意外情况,并且应该被开发者捕获,…
前言 在编程中异常报错是不可避免的.特别是在学习某个语言初期,看到异常报错就抓耳挠腮,常常开玩笑说编程1分钟,改bug1小时.今天就让我们来看看什么是异常和怎么合理的处理异常吧! 异常与error介绍 下面还是先让我们来看一下基本概念吧! ​ 异常指程序运行过程中出现的非正常现象,例如用户输入错误.除数为零.需要处理的文件不存在.数组下标越界等.异常机制本质就是当程序出现错误,程序安全退出的机制.在Java的异常处理机制中,引进了很多用来描述和处理异常的类,称为异常类.异常类定义中包含了该类异常…
1.概念 采用新的异常处理机制 在以往的程序开发过程中,经常采用返回值进行处理.例如,在编写一个方法,可以返回一个状态代码,调用者根据状态代码判定出错与否.若状态代码表示一个错误,则调用这进行相应的处理,或显示一个错误页面或错误信息.通过返回值进行处理的方法是有效的,但是有它的许多不足之处. 1. 程序复杂 2. 可靠性差 3. 返回信息有限 4. 返回代码标准化困难 采用错误代码和异常处理相结合的方式的优越性: 1. 把错误代码与常规代码分开 2. 可以在catch中传播错误信息 3. 可以对…