IDEA 調試Java代碼的兩個技巧


  本文介紹兩個使用IDEA 調試Java代碼的兩個技巧:

  • 修改變量值
  • 使用RuntimeException終止代碼執行

修改變量值

  在Java代碼調試過程中,我們可以修改變量值,使其達到走指定分支的目的,或者使其滿足某個條件。我們以給變量beanName賦值為例,說明如何修改變量值。示例代碼如下:

    public static void main(String[] args) {
        String beanName = "矩形畫圖工具";
        System.out.println("第一次打印:" + beanName);
        System.out.println("第二次打印:" + beanName);//①
        System.out.println("do something");
    }

  在①所在行打斷點后以debug模式運行main函數,進入變量視圖Variables,然后選擇變量beanName,再右鍵單擊變量選中Set Value(見圖1),就可以在變量視圖頁面根據變量類型修改變量值,我這里輸入“我是Wiener”,覆蓋其原始值“矩形畫圖工具”(見圖2)。


圖1


圖2

  放開斷點后,控制台打印結果如下,說明變量值被成功修改。

第一次打印:矩形畫圖工具
第二次打印:我是Wiener
do something

使用RuntimeException終止代碼執行

  使用RuntimeException調試代碼的一個好處就是不產生臟數據,另一個好處是盡量少的改變代碼,不影響調用者代碼。對上述測試代碼稍加改造,加入一個RuntimeException異常:

    public static void main(String[] args) {
        String beanName = "矩形畫圖工具";
        System.out.println("第一次打印:" + beanName); 
        if (true) {
            throw new RuntimeException("測試,終止代碼 --------------");
        }
        System.out.println("第二次打印:" + beanName);
        System.out.println("do something");
    }

  控制台打印結果如下:

第一次打印:矩形畫圖工具
Exception in thread "main" java.lang.RuntimeException: 測試,終止代碼 --------------
at com.eg.wiener.controller.UserController.main(UserController.java:68)

  由此可見,在拋出RuntimeException異常后,其后面的業務邏輯不再執行;如果在事務中拋出,則整個事務被回滾。這對於調試涉及大量保存和更新操作的代碼非常有用,允許你反復執行,並且數據庫中不產生臟數據。例如客戶下單過程中,要查詢客戶是否付款,付款后才把訂單狀態改為已支付,然后告知客戶出單成功,並通知倉庫發貨;假如在下單過程中拋出了一個莫名其妙的異常,那么,我們就可以在代碼中根據調試結果,在多個地方從前向后放入RuntimeException,直到定位到異常根源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM