<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本篇文章主要探討關於統一錯誤碼的設計,並提供筆者的實現
歡迎大家討論,指正。
該錯誤碼的設計在倉庫:
github:github.com/valarchie/A…
gitee:gitee.com/valarchie/A…
錯誤碼的層級有助於使用者端對於不同級別的錯誤進行處理。比如有的錯誤進行隱藏,有的錯誤直接暴露給使用者。這邊我規劃了四層錯誤碼。 錯誤碼集合
為了更好的分門別類,筆者給錯誤碼設定了模組,便於使用者端的特殊處理。例如使用者端可以專門給某一個模組的錯誤進行一個統一的處理。 模組對應的數位在千位和百位。例如1XX01,XX代表了模組的意義。
/** * 系統內的模組 */ public enum Module { /** * 普通模組 */ COMMON(0), /** * 許可權模組 */ PERMISSION(1), /** * 登入模組 */ LOGIN(2), /** * 資料庫模組 */ DB(3), /** * 上傳 */ UPLOAD(4), /** * 使用者 */ USER(5), /** * 設定 */ CONFIG(6), /** * 職位 */ POST(7), ; private final int code; Module(int code) { this.code = code * 100; } public int code() {return code; } }
/** * 10000~19999是內部錯誤碼 例如 框架有問題之類的 */ public enum Internal implements ErrorCodeInterface { /** * 內部錯誤碼 */ INVALID_PARAMETER(Module.COMMON, 1, "引數異常"), UNKNOWN_ERROR(Module.COMMON, 2, "未知異常, 請檢視系統紀錄檔"), GET_ENUM_FAILED(Module.COMMON, 3, "獲取列舉型別失敗, 列舉類: {}"), GET_CACHE_FAILED(Module.COMMON, 4, "獲取快取失敗"), LOGIN_CAPTCHA_GENERATE_FAIL(Module.LOGIN, 1, "驗證碼生成失敗"), INVALID_TOKEN(Module.PERMISSION, 1, "token異常"), DB_INTERNAL_ERROR(Module.DB, 1, "資料庫異常: {}"), ; private final int code; private final String msg; private static final int BASE_CODE = 10000; Internal(Module module, int code, String msg) { this.code = BASE_CODE + module.code() + code; this.msg = msg; } @Override public int code() { return this.code; } @Override public String message() { return this.msg; } }
為了便於錯誤碼在編寫程式碼時方便使用,我建立了ErrorCode這個類,並將四個層級的錯誤類一併放進這個類當中。
程式碼中的例子
if (roleService.checkRoleNameUnique(getRoleId(), getRoleName())) { throw new ApiException(ErrorCode.Business.ROLE_NAME_IS_NOT_UNIQUE, getRoleName()); }
通過這樣的形式進行呼叫:ErrorCode.Business.ROLE_NAME_IS_NOT_UNIQUE
缺陷在於:
探討關於錯誤碼的設計,歡迎小夥伴留言評論指正。
Any corrections or suggestions are appreciated.
Agileboot是一個致力於規範、質量,健壯的前後端開發腳手架。
以上就是AgileBoot 專案內統一的錯誤碼設計分析的詳細內容,更多關於AgileBoot 專案內統一錯誤碼的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45