自定義異常
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);
}
}
}