java 自定义异常,记录日志简单说明!留着以后真接复制

log4j 相关配制说明:http://blog.csdn.net/liangrui1988/article/details/17435139

自定义异常

package org.rui.ExceptionTest;

public class ExtraFeature {
	//-------使用------
	public static void f()throws MyException
	{
	 System.out.println("MyException from f()");
	 throw new MyException();
	}

	public static void l()throws MyException
	{
	 System.out.println("MyException from l()");
	 throw new MyException("Originated in l()");
	}

	public static void r()throws MyException
	{
	 System.out.println("MyException from r()");
	 throw new MyException("originated(起源) in r()");
	}

	//-------main---------
	public static void main(String[] args)
	{
		try {
			f();
		} catch (MyException e) {
			e.printStackTrace(System.out);
		}
		try {
			l();
		} catch (MyException e) {
			e.printStackTrace(System.err);
		}
		try {
			r();
		} catch (MyException e) {
			e.printStackTrace(System.out);
			System.out.println("getLocalizedMessage: "+e.getLocalizedMessage());
		    //栈轨迹
			for(StackTraceElement ste:e.getStackTrace())
				System.out.println("methodName:"+ste.getMethodName());
		}
	}

}

//自定义异常---
class MyException  extends Exception
{
	private int x;
	public MyException(){}
	public MyException(String msg){super(msg);}
	public MyException(String msg,int x)
	{
		super(msg);
		this.x=x;
	}

	public int val(){return x;}
	public String getMessge()
	{
		return "Detail Message: "+x+"super.getmessage()";
	}
}

异常与日志 简单说明

package org.rui.ExceptionTest;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.logging.Logger;

 public class LoggingExceptions{
	 public static void main(String[] args) {

				try {
					throw new LoggingException();
				} catch (LoggingException e) {
					System.err.print("Caught: "+e);
				}

				try {
					throw new LoggingException();
				} catch (LoggingException e) {
					System.err.print("Caught2: "+e);
				}

	}
 }

 class LoggingException extends Exception{
	private static Logger logger=Logger.getLogger("LoggingException");

	public LoggingException() {
		StringWriter trace=new StringWriter();
		printStackTrace(new PrintWriter(trace));
		logger.severe("severett:"+trace.toString());
	}

}
package org.rui.ExceptionTest;

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.logging.Logger;

 public class LoggingException2{
	 private static Logger logger=Logger.getLogger("LoggingException");

	 static void LogException(Exception e) {
			StringWriter trace=new StringWriter();
			e.printStackTrace(new PrintWriter(trace));
			logger.severe("severett:"+trace.toString());

	}

	 public static void main(String[] args) {

		 try {
			 throw new NullPointerException();
		} catch (NullPointerException e) {
			LogException(e);
		}

	}
 }

java 自定义异常,记录日志简单说明!留着以后真接复制,布布扣,bubuko.com

时间: 2024-10-06 06:51:16

java 自定义异常,记录日志简单说明!留着以后真接复制的相关文章

java 自己定义异常,记录日志简单说明!留着以后真接复制

log4j 相关配制说明:http://blog.csdn.net/liangrui1988/article/details/17435139 自己定义异常 package org.rui.ExceptionTest; public class ExtraFeature { //-------使用------ public static void f()throws MyException { System.out.println("MyException from f()"); th

java线程的简单实现及方法

java线程: 线程是一个程序内部的顺序控制流. cpu实际上在一个时间点上,只执行一个.只不过我们把cpu分成了多个时间片,由于速度很快,我们看起来像是多个线程.. 就像你的时间分成几片,这样 整体看来做事情有规律,效率就会高,何况是cpu呢. 线程的创建和启动: 方法一: java线程通过java.lang.Thread类来实现. VM启动时会有一个主方法所定义的线程, 每一个线程是Tread对象通过它的run()方法来完成操作. 启动线程方式:Thread的start()方法. 如下代码:

Java中的简单浮点数类型float和double不能够进行精确运算

在java中,简单的浮点类型float和double是不能够进行运算.我们先看下面的两个程序代码: 代码一: import java.util.Scanner; class Circle { double radius; static final double PI=3.14; public Circle(){this.radius=0;} public Circle(double r){this.radius=r;} public double getArea(){return PI*this

二、Java语言的简单认识及Hello World示例

1. Java语言的简单认识 (1) Java有三个版本: a. JAVA SE (以前称J2SE):Standard Environment 标准版本: b. JAVA EE (以前称J2EE):Enterprise Environment 企业版: c. JAVA ME (以前称J2ME):Eicro Environment 微型版; (2) Java的安装目录 在前一讲中,提到安装目录中有两个文件夹,分别是jdk1.7.0_45和jre7.在"jdk1.7.0_45"文件夹的bi

java设计之简单的JAVA计算器

做这个东西主要是为了练习一下以前学习过的java Swing,所以那些复杂的算法就没有加载到里面去........ 先展示一下效果....,额,当然不是这个样子....   ---> 代码: 1 package dialog_color; 2 3 import java.awt.BorderLayout; 4 import java.awt.Color; 5 import java.awt.Container; 6 import java.awt.FlowLayout; 7 import jav

利用java实现一个简单的远程监控程序

一般的远程监控软件都是用c或者c++等语言开发的,而使用java如何来实现相同的功能呢. 首先我们先介绍一下一个简单的远程监控程序的实现原理. 功能一,远程屏幕监视 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 被监控端获取本机的屏幕截屏发图给监控端. (3) 监控端在本地窗口中显示被监控端发送过来的图像. (4) (2)(3)步骤重复执行,这时在监控端即可实时监视到被监控端的桌面操作了. 功能二,远程控制 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 在监控端监

Java发邮件简单实现

给出一个Java发送邮件的简单实现. 下载 Java代码   1.  接口 public interface MailSendServDu { public void sendEmail(String addressee, String subject, String content); } 2.  实现 import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.Mime

Java的多线程 简单入门

Java的多线程 简单入门 首先可以先搞清楚什么是程序.进程.线程,以及它们之间的关系: 定义: 一 程序只是一组指令的有序集合,它是静态的 二 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位: 三 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程: 进程与线程区别与联系 (

java反射机制简单介绍

1.字节码.所谓的字节码就是当java虚拟机载入某个类的对象时,首先须要将硬盘中该类的源码编译成class文件的二进制代码(字节码),然后将class文件的字节码载入到内存中,之后再创建该类的对象 2.java反射的基础是Class类(注意不是小写的class),Class类实例代表着内存中的一份字节码.常见的获取Class类对象的方法例如以下(第一种为对象的方法,另外一种为类的方法): Dog dog = new Dog(); Class dogClass = dog.getClass();