亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? exceptionutil.java

?? 基于struts的一個異常處理框架,采用aop原理來統一處理異常。
?? JAVA
字號:
package org.expframework.exceptionhandler;

import java.io.PrintWriter;
import java.io.StringWriter;

import org.apache.log4j.Logger;
import org.expframework.data.ExceptionDTO;
import org.expframework.data.ExceptionInfoDTO;
import org.expframework.exceptions.BaseAppException;

/**
 * A helper class which is used to for various utility methods in exception
 * handling. All these utility methods are related to exceptions.
 * 
 * @author ShriKant
 * 
 * @version 1.0
 */
public class ExceptionUtil {

    /**
     * lgging type for error messages.
     */
    public static final String LOGTYPE_ERROR = "error";

    /**
     * logging type for warning messages.
     */
    public static final String LOGTYPE_WARN = "warning";

    /**
     * logging type for info messages.
     */
    public static final String LOGTYPE_INFO = "info";

    /**
     * logging type for no logging.
     */
    public static final String LOGTYPE_NOLOG = "nologging";

    /**
     * The length of exception trace beyond which it will be truncated
     */
    public static final int EXCEPTION_TRACE_LENGTH = 4000;

    static final String DOT = ".";

    private static final int INIT_BUFFER_SIZE = 1024;

    /**
     * Gets the stack trace of a <code>BaseAppException</code> in String form.
     * 
     * @param exception
     *            BaseAppException object
     * @return <code>String</code> Returns the detailed message.
     *  
     */
    public static String getDetailedMessage(BaseAppException exception) {
        StringBuffer msg = new StringBuffer(INIT_BUFFER_SIZE);

        if (exception.getMessage() != null) {
            msg.append("Message : ");
            msg.append(exception.getMessage());
            msg.append("\n");
        }

        msg.append("Exception Stack Trace\n");
        try {
            StringWriter sw = new StringWriter(INIT_BUFFER_SIZE);
            PrintWriter pw = new PrintWriter(sw);
            exception.printStackTrace(pw);
            msg.append(sw.toString());
            sw.close();
        } catch (Exception e) {
            msg.append(exception.toString());
        }
        Throwable rootCause = exception.getCause();
        if (rootCause != null) {
            msg.append("\n Root Exception Stack Trace : ");
            msg.append(rootCause.toString());
            msg.append("\n");
            try {
                StringWriter sw = new StringWriter(INIT_BUFFER_SIZE);
                PrintWriter pw = new PrintWriter(sw);
                rootCause.printStackTrace(pw);
                msg.append(sw.toString());
                sw.close();
            } catch (Exception e) {
                msg.append(rootCause.toString());
            }
        }
        return msg.toString();
    }

    /**
     * Gets the stack trace of a <code>Throwable</code> in String form.
     * 
     * @param a
     *            Throwable object.
     * @return <code>String</code> Returns the message as String.
     *  
     */
    public static String getDetailedMessage(Throwable a) {
        StringBuffer msg = new StringBuffer();

        msg.append("Message : ");
        msg.append(a.getMessage());
        msg.append("\n");
        msg.append("Exception Stack Trace\n");
        try {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            a.printStackTrace(pw);
            msg.append(sw.toString());
            sw.close();
        } catch (Exception e) {
            msg.append(a.toString());
        }
        String ret = msg.toString();
        msg = null;
        return ret;
    }

    /**
     * Gets the name of class based on passed <code>Throwable</code> instance.
     * 
     * @param e
     *            Throwable object for which class name needs to be find out.
     * @return the name of the class.
     *  
     */
    public static String getClassName(Throwable e) {
        String className = e.getClass().getName();
        String errId = className;

        if (e instanceof BaseAppException) {
            int i = className.lastIndexOf('.');
            errId = className.substring(i + 1);
        }
        return errId;
    }

    /**
     * Gets the detailed message of a <code>BaseAppException</code> including
     * stack trace, userId and errorId information in String form. This detailed
     * message is used as a stack trace for log file as well as database.
     * 
     * @param exp
     *            BaseAppException object
     * @param userId
     *            the user for which exception occured.
     * @return the detailed message.
     *  
     */
    public static String getExceptionLog(Throwable exp, String userId) {
        String errorId = getClassName(exp);
        String detailedMessage = null;
        if (exp instanceof BaseAppException) {
            BaseAppException ie = (BaseAppException) exp;
            detailedMessage = getDetailedMessage(ie);
        } else {
            detailedMessage = getDetailedMessage(exp);
        }

        StringBuffer lBuffer = new StringBuffer(INIT_BUFFER_SIZE);
        String msg = null;
        lBuffer.append("ERRORID :");
        lBuffer.append(errorId);
        lBuffer.append("\n");

        lBuffer.append("USERID : ");
        lBuffer.append(userId);
        lBuffer.append("\n");

        lBuffer.append("EXCEPTION MESSAGE :");
        lBuffer.append(detailedMessage);
        lBuffer.append("\n");
        lBuffer
                .append("--------------------------------------------------------------------------------------\n");

        msg = lBuffer.toString();
        return msg;
    }

    public static ExceptionDTO getExceptionDetails(String context, Throwable exp) {
        ExceptionDTO exDTO = new ExceptionDTO();
        ExceptionInfoCache ecache = ExceptionInfoCache.getInstance();
        ExceptionInfoDTO exInfo = ecache.getExceptionInfo(ExceptionUtil
                .getClassName(exp));
        if (exInfo != null) {
            exDTO.setLoggingType(exInfo.getLoggingType());
            exDTO.setConfirmation(exInfo.isConfirmationInd());
            String messageCode = exInfo.getMessageCode();
            if (exInfo.isContextSensitive())
                messageCode = messageCode + DOT + context;
            exDTO.setMessageCode(messageCode);
        }
        return exDTO;
    }

    /**
     * Logs the exception using Log4j logger.
     * 
     * @param th
     * @param userId
     * @param loggingType
     *  
     */
    public static void logException(Class clazz, Throwable th, String userId,
            String loggingType) {
        Logger logger = Logger.getLogger(clazz);
        String exceptionTrace = ExceptionUtil.getExceptionLog(th, userId);
        if (ExceptionUtil.LOGTYPE_NOLOG.equals(loggingType))
            return;
        else if (ExceptionUtil.LOGTYPE_ERROR.equals(loggingType))
            logger.error(exceptionTrace);
        else if (ExceptionUtil.LOGTYPE_INFO.equals(loggingType))
            logger.info(exceptionTrace);
        else if (ExceptionUtil.LOGTYPE_WARN.equals(loggingType))
            logger.warn(exceptionTrace);
        else {
            logger.error(exceptionTrace);
        }
    }

    /**
     * Logs the exception using Log4j Logger. Implicitely calls
     * logException(Throwable, String userId, String loggingType). The logging
     * type to be passed to this method is ExceptionUtil.LOGTYPE_ERROR.
     *  
     */
    public static void logException(Class clazz, Throwable th, String userId) {
        logException(clazz, th, userId, LOGTYPE_ERROR);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人bangbros| 久久精品视频免费观看| 日本在线不卡一区| 中文无字幕一区二区三区| 国产成人在线视频网站| 天天色天天爱天天射综合| 亚洲柠檬福利资源导航| 中文字幕精品一区二区精品绿巨人| 一区二区三区四区蜜桃 | 久久婷婷一区二区三区| 欧美丰满高潮xxxx喷水动漫| a在线播放不卡| 国产成人在线观看| 91精品啪在线观看国产60岁| 欧美肥胖老妇做爰| 亚洲乱码日产精品bd| 亚洲视频小说图片| 亚洲免费av高清| 国产成人av电影在线播放| 成人av在线一区二区| 一道本成人在线| 欧美在线视频不卡| 欧美丰满一区二区免费视频| 亚洲另类色综合网站| 91免费精品国自产拍在线不卡 | 国产精品传媒入口麻豆| 成人免费视频在线观看| 亚洲综合免费观看高清在线观看| 亚洲综合丝袜美腿| 色欧美日韩亚洲| 一区二区三区日本| 91成人免费在线| 日韩免费看的电影| 国产精品久久久久影院色老大| 狠狠色丁香久久婷婷综合_中| 欧美日韩三级一区二区| 99久免费精品视频在线观看| 久久影音资源网| 国产精品综合视频| 色婷婷激情综合| 亚洲另类春色校园小说| 欧美视频一区二区三区四区 | 亚洲电影在线免费观看| 久久精品久久久精品美女| 国产精品影视在线| 久久久久久9999| 亚洲超碰97人人做人人爱| 国产精品白丝av| 国产精品色婷婷| 91啪亚洲精品| 午夜精品在线看| 欧美精品一区男女天堂| 色欧美88888久久久久久影院| 亚洲国产精品成人综合 | 中文字幕人成不卡一区| 色综合久久综合网97色综合| 91精品黄色片免费大全| 麻豆成人久久精品二区三区红| 高清不卡一区二区| 亚洲少妇最新在线视频| 欧美日韩精品电影| 国产精品久久久久婷婷| 91国偷自产一区二区三区观看 | 国产精品成人一区二区三区夜夜夜| www.日韩大片| 视频一区国产视频| 欧洲av在线精品| 毛片一区二区三区| 国产精品久久久久国产精品日日| 一本大道久久精品懂色aⅴ| 日韩成人av影视| 国产精品少妇自拍| 亚洲成av人影院| 国产亚洲一区二区三区| 日本韩国欧美国产| 韩国精品免费视频| 亚洲人成在线观看一区二区| 欧美一级日韩免费不卡| 午夜精品视频一区| 国产精品女主播在线观看| 欧美日韩高清不卡| 不卡视频在线观看| 久久se这里有精品| 亚洲综合久久久久| 丁香一区二区三区| 久久国产精品99久久人人澡| 亚洲免费资源在线播放| 国产亚洲一区二区三区在线观看| 91精选在线观看| 色噜噜狠狠成人网p站| 国产69精品一区二区亚洲孕妇| 日日夜夜一区二区| 亚洲一区二区三区四区五区黄| 国产农村妇女毛片精品久久麻豆| 国产一区二区三区在线观看精品| 精品区一区二区| 欧美日韩午夜影院| 在线视频亚洲一区| 国产精品剧情在线亚洲| 精品欧美乱码久久久久久| 精品视频一区 二区 三区| 99久久综合狠狠综合久久| 成人丝袜18视频在线观看| 亚洲免费观看在线视频| 亚洲国产精品ⅴa在线观看| 精品精品欲导航| 中文字幕中文字幕在线一区| 精品久久一区二区三区| 91色porny在线视频| 国产ts人妖一区二区| 国产真实乱偷精品视频免| 欧美a级理论片| 91在线一区二区| 亚洲精品免费播放| 亚洲欧洲日韩在线| 亚洲国产精华液网站w| 国产喂奶挤奶一区二区三区| 久久久综合视频| 久久老女人爱爱| 国产女同性恋一区二区| 中文字幕的久久| 欧美国产在线观看| 国产精品丝袜一区| 综合在线观看色| 一区二区三区中文字幕电影| 亚洲男人的天堂av| 亚洲高清不卡在线| 久久精品国产**网站演员| 免费观看一级特黄欧美大片| 精品一区二区在线视频| 玉米视频成人免费看| 亚洲午夜影视影院在线观看| 亚洲国产精品一区二区久久| 日韩专区在线视频| 捆绑变态av一区二区三区| 国产精品综合网| 91丨九色丨蝌蚪丨老版| 欧美日韩一区二区三区免费看| 欧美军同video69gay| 亚洲精品一区二区三区精华液| 久久久亚洲精品石原莉奈| 亚洲特级片在线| 天堂久久一区二区三区| 国产精品综合二区| 91黄色免费版| 欧美成人精品1314www| 国产精品精品国产色婷婷| 亚洲国产中文字幕| 国产精品一区二区三区网站| 99精品欧美一区二区三区综合在线| 欧美又粗又大又爽| 久久综合中文字幕| 亚洲精品第1页| 韩日av一区二区| 亚洲欧美另类久久久精品| 日韩中文字幕亚洲一区二区va在线| 国产一区二区久久| 色丁香久综合在线久综合在线观看| 日韩一区二区免费在线电影| 色综合一个色综合亚洲| 成人精品小蝌蚪| 91精品婷婷国产综合久久竹菊| 国产视频在线观看一区二区三区| 亚洲国产视频一区| 成人永久aaa| 精品三级在线观看| 一区二区免费在线| 成人免费高清在线观看| 日韩欧美一区二区免费| 亚洲欧美色图小说| 国产高清精品网站| 欧美一区二区三区免费视频| 亚洲男人的天堂av| 不卡的av中国片| 久久综合久久久久88| 亚洲成av人片在www色猫咪| 成人精品一区二区三区四区| 欧美r级电影在线观看| 亚洲一区二区成人在线观看| 成人激情动漫在线观看| 欧美成人一区二区三区片免费| 一区二区免费视频| 99这里只有久久精品视频| 欧美精品一区二区精品网| 天堂成人国产精品一区| 在线亚洲免费视频| 一区二区中文视频| 丁香六月综合激情| 久久精品水蜜桃av综合天堂| 久久超级碰视频| 精品欧美一区二区在线观看| 蜜臀va亚洲va欧美va天堂| 欧美日本在线观看| 亚洲成a人片在线观看中文| 欧美在线观看视频一区二区三区| 亚洲激情男女视频| 色94色欧美sute亚洲13| 亚洲男女毛片无遮挡| 91久久香蕉国产日韩欧美9色| 亚洲婷婷综合色高清在线|