<menu id="u2y6m"></menu>
<tt id="u2y6m"><rt id="u2y6m"></rt></tt>
  • <input id="u2y6m"></input><tt id="u2y6m"><blockquote id="u2y6m"></blockquote></tt>
    <bdo id="u2y6m"><small id="u2y6m"></small></bdo>
  • <blockquote id="u2y6m"><optgroup id="u2y6m"></optgroup></blockquote>
  • 溫馨提示×

    Spring中如何進行日常Bug排查

    發布時間:2021-06-14 12:59:35 來源:億速云 閱讀:160 作者:小新 欄目:web開發

    這篇文章將為大家詳細講解有關Spring中如何進行日常Bug排查,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

     前言

    日常Bug排查系列都是一些簡單Bug排查,筆者將在這里介紹一些排查Bug的簡單技巧,同時順便積累素材^_^。

    Bug現場

    最近有人反映java應用操作數據庫的時候,拋異常不回滾。這還了得,不過筆者篤定肯定是用法的鍋,不然就全亂套了。所以筆者去Review他的代碼。

    代碼片段

    @Transacion(value="x")  public void s1() throw MyException{      update(1);      throwBusinessException();     update(2);  }

    乍看上去沒啥問題。

    思路

    筆者用@Transaction注解也用了好幾年了,從來沒遇到過拋異常不回滾的情況??此挠梅ㄒ埠凸P者差不多呀?

    然后筆者稍微思索了會,發現我寫的代碼和出問題的這一段稍稍有些不一樣。我是這么寫的:

    @Transacion(value="transManager")  public void s1(){      update(1);      update(2);  }

    貌似我從來沒有在函數上加過throw  MyException,難道是這段有問題?翻看MyException代碼,發現它僅僅繼承了Exception。

    class MyEception extends Exception { }

    好像就這點不一樣。而筆者自定義的Exception基本繼承了RuntimeException的。

    翻下Spring源碼

    按照這個思路,筆者去翻了下Spring的源碼,看下它在聲明式事務中的處理邏輯到底是什么,于是翻到了這一段處理事務異常的代碼:

    TransactionAspectSupport.java protected void completeTransactionAfterThrowing(TransactionInfo txInfo, Throwable ex) {     if (txInfo.transactionAttribute.rollbackOn(ex)) {     }else{         // We don't roll back on this exception.         // Will still roll back if TransactionStatus.isRollbackOnly() is true.         // 在checkedException的時候,不會被rollBack,會commit!!!     } } @Override public boolean rollbackOn(Throwable ex) {     return (ex instanceof RuntimeException || ex instanceof Error); }

    關于“Spring中如何進行日常Bug排查”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    免費撥打  400 100 2938 免費撥打 400 100 2938
    24小時售后技術支持 24小時售后技術支持
    返回頂部 返回頂部
    <menu id="u2y6m"></menu>
    <tt id="u2y6m"><rt id="u2y6m"></rt></tt>
  • <input id="u2y6m"></input><tt id="u2y6m"><blockquote id="u2y6m"></blockquote></tt>
    <bdo id="u2y6m"><small id="u2y6m"></small></bdo>
  • <blockquote id="u2y6m"><optgroup id="u2y6m"></optgroup></blockquote>
  • 一本久道久久综合丁香五月_免费视频禁止18以下禁止观看_日本japanese熟睡人妻_成熟闷骚女邻居引诱2