1. 程式人生 > >異常處理框架(一)

異常處理框架(一)

1、新建 【HloException.java】

package com.test.exception;

public class HLoException extends Exception{
    
    static final long serialVersionUID = -7878338751984229948L;
    
    public HLoException() {
        super();
    }
    
    public HLoException(String message) {
        super(message);
    }
    
    public HLoException(Throwable cause) {
        super(cause);
    }
    
    public HLoException(String message, Throwable cause) {
        super(message, cause);
    }
    
}

2、1、新建 【GenericBizException.java】
package com.test.exception;

public class GenericBizException extends HLoException{
          
    private static final String ERROR_MESSAGE_NOT_SET = GenericBizException.class.getName() + "-[ERROR_MESSAGE_NOT_SET]";
    private static final long serialVersionUID = 7069886313039447936L;

    private String errorCode;
    private String errorMessage = ERROR_MESSAGE_NOT_SET;
    private Object[] args = null;
            
    private Object model = null;
            
    public GenericBizException(String errorCode, Throwable cause, Object... args) {
        super(cause);
        this.errorCode = errorCode;
        this.args = args;
    }
            
    public GenericBizException(String errorCode, Object[] args) {
        this(errorCode, null, args);
    }
            
    public GenericBizException(String errorCode, String errorMsg) {
        this.errorCode = errorCode;
        errorMessage = errorMsg;
        
    }
            
    public GenericBizException(String errorCode, String errorMsg, Throwable cause) {
        super(cause);
        this.errorCode = errorCode;
        errorMessage = errorMsg;
    }
            
    public GenericBizException(String errorCode)
    {
        this.errorCode = errorCode;
    }
            
    public String getMessage()
    {
        if (isErrorMessageSet()) {
            return String.format("ErrorCode:<%s>,ErrorMessage:<%s>", new Object[] { errorCode, errorMessage });
        }
        return String.format("ErrorCode:<%s>", new Object[] { errorCode });
    }
            
    public boolean isErrorMessageSet()
    {
        return !ERROR_MESSAGE_NOT_SET.equals(getErrorMessage());
    }
            
    public String getErrorCode() {
        return errorCode;
    }
            
    public String getErrorMessage() {
        return errorMessage;
    }
            
    public Object[] getArgs() {
        return args;
    }
    
    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }
    
    public Object getModel() {
        return model;
    }
            
    public void setModel(Object model) {
        this.model = model;
    }

}

3、測試

package com.test.junit;

import com.test.exception.GenericBizException;

public class Test {

    public static void main(String[] arg){
 
        try {
            GenericBizException exception = new GenericBizException("code", "message");
             
             throw exception;
        }
        catch (GenericBizException e) {
            e.printStackTrace();
        }
    }
    
}


相關推薦

異常處理框架

1、新建 【HloException.java】 package com.test.exception; public class HLoException extends Exception{ static final long serialVer

Python-異常處理try

平時在做自動化測試的時候,腳本里面會經常用到try和except,但是感覺好像對try的用法理解的不是很透徹,今天在這裡重新學習下,也分享給大家! 大家看一下 try 和 except 的工作原理: try: #可能發生異常的

Tensorflow多線程輸入數據處理框架——隊列與多線程

cast 支持 oop soft dom 集合 run 列操作 start 參考書 《TensorFlow:實戰Google深度學習框架》(第2版) 對於隊列,修改隊列狀態的操作主要有Enqueue、EnqueueMany和Dequeue。以下程序展示了如何使用這些函數來

數字影象處理筆記:利用OpenCV的Cameo框架搭建實驗環境

1 - 引言 Python的應用程式可以通過面向物件的方法來實現,OpenCV提供了一個Cameo框架可以捕捉電腦的攝像頭。我們可以通過編寫新增框架裡的類和方法來對攝像頭捕捉到的畫面進行影象處理和實驗,是一個很好的學習方法,下面讓我們來搭建一下這個Cameo框架 2 - 使用mana

Java EE專案中的異常處理總結篇不得不看的文章

什麼是異常?執行時發生的可被捕獲和處理的錯誤。這篇文章主要介紹了Java EE專案中的異常處理總結,有需要的可以瞭解一下。 為什麼要在J2EE專案中談異常處理呢?可能許多java初學者都想說:“異常處理不就是try….catch…finally嗎?這誰都會啊!”。筆者在

【SSH之旅】步步學習Hibernate框架:關於持久化

stc localhost 對象 schema hbm.xml java let pass [] 在不引用不論什麽框架下,我們會通過平庸的代碼不停的對數據庫進行操作,產生了非常多冗余的可是又有規律的底層代碼,這樣頻繁的操作數據庫和大量的底層代碼的反復

基於 EntityFramework、Autofac 的 UnitOfWork 框架

map 包括 應用 問題 pos web 新的 ges 解釋 之前公司項目參考 NopCommerce 開發了一套系統,但是不支持 UnitOfWork,最近想開發新的項目,所以就基於原有的基礎上又添加 UnitOfWork 支持,由於目前正在逐步完善中,所以可能存在各種問

web框架之基礎簡介

-a 程序 我想 pos 客戶 創建 當前 自動 art http的請求聲明周期:域名----DNS服務器---IP地址---基於tcp協議的http協議發送請求協議,服務端返回響應頭+響應體(我們所看到的頁面(是經過js渲染的,接收的是字符串))服務端(web服務)根據我

自制權限框架jsp標簽

目錄 用戶 request ref 基於 -i rar 發現 tro 一、概述   在我們的系統中,很多時候都用到了權限。最簡單的權限就是登錄。登錄了,我就可以自己的相關信息;沒有登錄,就不能看到。   目前比較流行的權限框架就是apache shiro和spring se

MyBatis框架

通過 ons sql dstat ride 開源 alt div feed MyBatis介紹:   MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,並且

Spring框架

原因 getmethod 意思 myba model 找我 except 類型 程序代碼 Spring:   Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由 Rod Johnson在其著作 Expert One-On-On

編寫python web框架:簡介

== web 方法 nvi ever pytho 必須 ext sim 編寫一個最簡單的應用: def app(environ, start_response): start_response(‘200 OK‘, [(‘Content-Type‘, ‘tex

我為什麽支持高校的業務系統放棄Apache Struts2框架

文章 廣東 我們 然而 所有 以及 erl 業務 spring 月初聽聞廣東某高校(中山大學)發布通知:關於停止使用Apache Struts2開發框架的通知 鑒於S2漏洞較多、維護難度較大,為防範控制網絡安全風險,經研究決定,新建信息化項目不得使用S2; 在用S2的信息

Skynet服務器框架 Linux下的安裝和啟動

進行 harbor 的人 新源 中心 -a 編譯 加載模塊 問題 根據雲風博客的描述,Skynet 的核心功能就是解決一個問題: 把一個符合規範的 C 模塊,從 動態庫(so文件)中啟動起來,綁定一個永不重復(即使模塊退出)的數字id做為其 handle。模塊 被稱為

利用 Composer 步構建自己的 PHP 框架

highlight odi yii 2 org lar getc group bsp 空間 “一個時代結束了,另一個時代開始了。” Framework Interoperability Group(框架可互用性小組),簡稱 FIG,成立於 2009 年。FIG 最初由幾位知

自然語言處理隨筆

索引 中國 大學 import pip for earch 清華 北京 安裝jieba中文分詞命令:pip install jieba 簡單的例子: import jiebaseg_list = jieba.cut("我來到北京清華大學", cut_all=True)pri

【數學之美筆記】自然語言處理部分.md

strip BE 模擬 ges arr 實驗 語句 次數 而不是 文字、數字、語言 、信息 數字、文字和自然語言一樣,都是信息的載體,他們的產生都是為了記錄和傳播信息。 但是貌似數學與語言學的關系不大,在很長一段時間內,數學主要用於天文學、力學。 本章,我們將回顧一下信息時

Java源碼解析——集合框架——ArrayList

cloneabl trac RR ... 需要 pub 復雜 每次 靈活 ArrayList源碼分析 ArrayList就是動態數組,是Array的復雜版本,它提供了動態的增加和減少元素、靈活的設置數組的大小。 一、類聲明 public class ArrayLi

Windows環境下,從零開始搭建Nodejs+Express+Ejs框架---安裝nodejs

直接 分享圖片 完成 info pre download png 安裝包 get 第一步,安裝nodejs https://nodejs.org/en/download/ 這個是nodejs的官網,由於操作系統是win7 64位的,所以,我下載的是node-v8.11.1-

PL/SQL批處理語句BULK COLLECT

數據 使用 for循環 差異 code 基於 name 從表 允許 我們知道PL/SQL程序中運行SQL語句是存在開銷的,因為SQL語句是要提交給SQL引擎處理,這種在PL/SQL引擎和SQL引擎之間的控制轉移叫做上下文卻換,每次卻換時,都有額外的開銷。然而,FORALL和