1.日志记录栈消息
public class LoggingExceptions2 {
private static Logger logger =
Logger.getLogger("LoggingExceptions2");
static void logException(Exception e) {
StringWriter trace = new StringWriter();
e.printStackTrace(new PrintWriter(trace));
logger.severe(trace.toString());
}
public static void main(String[] args) {
try {
throw new NullPointerException();
} catch(NullPointerException e) {
logException(e);
}
}
} /* Output: (90% match)
log4j, logger.error("",e);
2.声明抛出异常在abstract和interface ,让实现类的调用必须要捕获异常
3.Exception 子类 RuntimeException和非RuntimeException