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);
		}

	}
 }
时间: 2024-10-09 22:18:47

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()"); thr

【Java基础】异常的简单分类与处理

Java中所有的异常都继承自Throwable类,Throwable类的已知子类有Error和Exception. Error是指系统出现的错误,这种错误出现的时候,我们的程序无能为力,所以不需要进行处理. Exception则是在程序中出现的异常,我们通常对这些异常进行处理. Exception有很多的子类,有一类比较特殊,那就是RuntimeException.RuntimeException属于非受检异常,也就是编译器不会对这种异常进行检查,这类异常被允许不用捕捉,也就是不用catch.我

【java基础之异常】死了都要try

目录 1.异常 1.1 异常概念 1.2 异常体系 1.3 异常分类 1.4 异常的产生过程解析 2. 异常的处理 2.1 抛出异常throw 2.2 Objects非空判断 2.3 声明异常throws 2.4 捕获异常try…catch 2.4 finally 代码块 2.5 finally 代码块与return语句 2.6 异常注意事项 3.自定义异常 3.1 概述 3.2 自定义异常练习 4.来!和异常大干一场 @ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM

Object类-try-catch-finally-throw-throws-自定义异常

一.Object类     Object类是最顶端的类,其它类都是它的子类,它的方法可以被继承.如果定义的类没有继承别的类,那它的直接父类就是Object.如果方法参数类型为object类型, 则调用方法可以传递任意类型的值(相当于多态);同理,如果方法返回值为Object类型,那么给方法的返回数据值为任意类型.     两种常用方法:toString()/equals() (1)toString方法 源码: public String toString(){         return ge

黑马程序员-----Java基础:异常和异常处理

------- android培训.java培训.期待与您交流! ---------- 异常概述 异常:就是程序在运行时出现的不正常的情况 异常由来:问题也是现实生活中的一个具体的事物,也可以通过Java的类的形式进行描述,并封装成对象 对于问题的划分:一种是严重的问题.一种是非严重的问题 对于严重的,Java通过Error类进行描述,对于Error一般不编写针对性的代码对其进行处理 对于非严重的,Java通过Exception类进行描述,对于Exception可以使用针对性的处理方式进行处理

JAVA中的异常疑点解析

1 final, finally, finalize的区别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承. 内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码…… finally是异常处理语句结构的一部分,表示总是执行. finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等.JVM不保证此方法总被调用 2运行时异常与一般异常有何异同? 异常表

java Scanner和异常

Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); 接下来我们演示一个最简单的的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据: 使用 ne

Java throw:异常的抛出怎么回事

到目前为止,你只是获取了被Java运行时系统抛出的异常.然而,程序可以用throw语句抛出明确的异常.Throw语句的通常形式如下:    throw ThrowableInstance;这里,ThrowableInstance一定是Throwable类类型或Throwable子类类型的一个对象.简单类型,例如int或char,以及非Throwable类,例如String或Object,不能用作异常.有两种可以获得Throwable对象的方法:在catch子句中使用参数或者用new操作符创建.

Java 常见的异常错误分析大集合

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberF