1 問題描述
在編寫程序的時候免不了面對的問題就是出現錯誤,而錯誤分為兩部分:看得見的錯誤和看不見的錯誤。看的見的錯誤:在IntellijIDEA編輯器上對於一些語法錯誤或者關鍵詞單詞錯誤進行標紅;看不見的錯誤:並不會被IntellijIDEA識別,但不會被運行成功。
2 問題分析
看得見的錯誤很好被解決,本文將圍繞如何解決看不見的錯誤進行展開。看不見的錯誤雖然很不被標紅,但運行後會被報exception,這時候會用到調試的方法。調試能夠解決許多問題,不僅僅是exception的問題,還可以檢測運行過程中參數的值
3 解決方案
下面所示代碼是本次圍繞的所有代碼
圖1
第一步 設置斷點
在想要設置斷點的代碼行,在行號欄的後面單擊滑鼠左鍵或者使用快捷鍵(因電腦而異)。
圖2
第二步 開啟調試會話
點擊idea左上角的小蟲子,進入調試,(注意左側的下拉框選中應該為調試運行的程序,本人的程序名為DemoOne)。
圖3
在運行後(debug模式),程序會停留在打斷點的位置且沒有被運行本行。同時idea下方會出現此樣的Debugd試圖。圖中紅色箭頭所指之處就是目前所運行之處,右側視圖裡面是檢測目前的變量的值。
圖4
第三步 單步調試
單步調試主要應用了中的方框中的左邊四個按鈕:step over、step into、force step over、step out。
Step over
單步執行,運行下一條代碼;運行過程中遇到子函數時是不會進入子函數內的,而是將子函數整個執行完再停止,也就是把子函數整個作為一步。因此圖 1中的代碼,並不會進入maxTwo(x,y)和Math.max(x,y)兩個函數,而是直接被輸出了結果,然後結束程序。
Step into
運行下一條代碼;運行過程中遇到子函數時能夠進入子函數內的,且繼續單步執行。
注意:進入的子函數,只包括自己設計編寫的函數,例如圖 1中第17行的maxTwo(x,y)能夠被進入,但是第18行的Math.max(x,y)不能夠進入函數主體。
也就是包括了stepover的功能但是多了一個能夠進入子函數的功能。
force step into
運行下一條代碼;運行過程中遇到任意函數都能夠進入,也就解決了step into上的不足。
step out
普通語句時,結束程序;for循環時,依舊執行循環體,但循環完成後結束程序;若正在子函數內部,那麼就執行完子函數餘下部分,並返回到上一層函數。一般此方法用於,自己認為此函數並沒有問題,就使用其進行退出,直接下一條語句。
Drop frame
當已經運行於某個函數內,該按鈕會亮起,點擊後可返回到當前方法的調用處,重新執行。為便於理解,筆者在maxTwo(x,y)裡面多寫了兩條代碼,點擊中間的正方形框時就會被跳入到最下方的方框中的main()函數中。
4 總結
本文建議介紹了如何使用idea去調試,主要對step over / step into / forcestep into/step out這四個按鈕進行闡述,希望對正在閱讀的您一點幫助。
參考文獻
WB4S ——《Intellij IDEA調試功能使用總結》——博客園
更多精彩文章:
什麼是機器學習
關於網頁首頁設計的一點思考
新手小白應該如何學習MUI
聊一聊編程的本質
深入理解瀏覽器內核 - 概述
深入理解瀏覽器內核 - 瀏覽器內核介紹
深入理解瀏覽器內核 - 瀏覽器內核依賴關係
python快速求解不定積分和定積分
AI告訴你張無忌最愛的竟是...
Jupyter快速編輯高大上數學公式 泰勒展開式
Jupyter快速編輯高大上數學公式 常見希臘字母
基本初等函數 指數函數
基本初等函數 指數函數 代碼篇
聊一聊JavaWeb面試
聊一聊單片機和伺服器
50行代碼實現簡單的網站伺服器
50行代碼實現網站伺服器 2
50行代碼實現網站伺服器 3
Tomcat源碼分析之 doGet方法(一)
Tomcat源碼分析之 doGet方法(二)
Tomcat源碼分析之 doGet方法(三)
Tomcat源碼分析之 doGet方法(四)
Tomcat源碼分析之中文亂碼(一)
一種基於狀態機的 DOM 樹生成技術(1)
一種基於狀態機的 DOM 樹生成技術(2)
點擊頁面右下角「寫留言」發表評論,期待您的參與!期待您的轉發!