拋例外相信大家都會吧?只需要這樣就可以了:
throw new RuntimeException("didispace.com");
但是,在開發程序中有一些情況,我們需要測驗程式對例外的處理邏輯是否正確,這個時候就需要我們在程式運行時主動的拋出例外才會觸發相關邏輯來驗證正確性,比較常見的場景有:事務是否會回滾、Web層的統一例外處理等等,
這個時候,你是如何去制造例外,來支持你的除錯呢?
下面我就以前寫的Spring Boot教程里一個事務處理的例子為場景,給大家看看一些常見的除錯操作以及今天要講的更優雅的操作,
案例說明
先介紹下場景,這是一個用Spring Data JPA實作的資料庫操作案例,右側UserService里一個事務操作,里面含有5句User表的插入陳述句,

因為@Transactional注解存在,所以saveSomeUsers函式下的資料插入要么都成功,要么都失敗,成功很好測驗,要測驗失敗的話,則需要我們讓這個函式拋出例外才能觸發回滾操作,
擼起袖子就是拋
為了拋出例外以驗證事務是否能回滾,很多小伙伴是這樣干的:

直接在這個函式里手工拋出例外,很粗暴很直接,是可以完成目標,雖然這種方法在單元測驗中作為一種場景是可以的,但如果在復雜的業務程序中這樣做就不那么優雅了,因為你測驗好還要刪掉它,如果忘記了,那就是直接寫了個Bug,
優雅地拋例外
實際上IDEA提供了自由拋例外的功能,只需要在Debug的時候,右鍵前幾天介紹的回退操作Reset Frame位置,就可以看到如下圖箭頭所標的Throw Exception操作了,

然后在彈出框中,你就可以撰寫你想要拋出的例外了:

是不是很簡單呢?趕緊打開IDEA試一試吧!這里視頻教程也同步更新了,點擊就可以查看,我正在連載IDEA專題的視頻內容,感興趣的小伙伴可以關注我喲!
歡迎關注我的公眾號:程式猿DD,第一時間了解前沿行業訊息、分享深度技術干貨、獲取優質學習資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/458420.html
標籤:Java
上一篇:Keycloak 入門實戰(4)--客戶端配接器使用
下一篇:SpringAOP的原始碼決議
