最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

玩轉(zhuǎn) IDEA 花式打斷點,從此告別 996

2022-05-01 12:34 作者:劉水鏡  | 我要投稿


寫代碼離不開調(diào)試,調(diào)試離不開斷點。


IDEA 對于斷點的支持非常豐富。掌握這些技巧以后,可以大大的提升開發(fā)效率。是幫助程序員保住頭發(fā),遠(yuǎn)離 996 的秘密武器。


斷點類型


IDEA 支持以下四種斷點類型:

  • 行斷點(Line breakpoints):最常用的一種,可以設(shè)置在任意可執(zhí)行的代碼行上面。

  • 方法斷點(Method breakpoints):設(shè)置在方法簽名上,當(dāng)進(jìn)入或退出方法時,斷點可被喚醒。

  • 字段斷點(Field watchpoints):設(shè)置在字段(成員變量)上,當(dāng)該字段被讀取或者賦值時斷點被喚醒。

  • 異常斷點(Exception breakpoints):當(dāng)拋出指定異常時斷點被喚醒。


行斷點


行斷點,在日常開發(fā)中最常用的方式。添加一個行斷點很簡單,在需要添加斷點的 gutter 上鼠標(biāo)左鍵單擊,或者光標(biāo)定位到需要設(shè)置斷點的代碼行,按 Ctrl + F8 即可。


行斷點


斷點添加成功后,gutter 上會顯示一個紅色的圓點。接下來,使用 Debug 方式運(yùn)行程序,就可以對代碼進(jìn)行調(diào)試了。


方法斷點


方法斷點你可能之前沒有用過,但如果你有閱讀源碼的習(xí)慣,那么你需要好好利用一下這個就家伙了。


方法斷點


添加方法斷點和添加行斷點的步驟一樣,兩者只是外觀上有些不同,方法斷點用紅色的菱形表示。


那么方法斷點有什么用呢?舉個例子:


類圖


有如上類關(guān)系,代碼實現(xiàn)如下:



有如下調(diào)用:


這個時候,我們不能一眼看出 service 是 ServiceImplA 的實例,還是 ServiceImplB 的實例(這個例子代碼比較簡單,像 Spring 這類開源框架要復(fù)雜很多,看過源碼的話都有體會)。


接下來就是方法斷點表演的時刻了,在接口 Service 的 method()?上打一個斷點:


方法斷點


運(yùn)行程序,查看效果:


方法斷點效果


可以看到,hello() 方法中的 service.method()?真正調(diào)用的是 ServiceImplA 的 metho() 方法。


另外,方法斷點還支持以下配置:


方法斷點配置項


其中,Method entry 和 Method exit 二者至少要選擇一個(如果進(jìn)入方法和退出方法都不選,那方法斷點也就沒啥用了)。


字段斷點


字段斷點也是一個看源碼的神器。當(dāng)一個成員變量被多方引用時,它可以精準(zhǔn)的找到誰讀取、修改了它的值。


字段斷點


字段斷點用一個紅色的眼睛表示,可謂是非常形象了。就像給成員變量專門安排了一個盯梢的人,有什么風(fēng)吹草動第一時間通知你。


運(yùn)行程序,看下效果:


字段斷點效果


可以看到,精準(zhǔn)的定位到 hello 被賦值的位置。



字段斷點還支持以下配置:


字段斷點配置項



同樣,F(xiàn)ield access 和 Field modification 最少選一個。


異常斷點


異常斷點在我們修復(fù) bug 的時候很有用??梢跃珳?zhǔn)的定位到發(fā)生(指定類型)異常的代碼行。


異常斷點



異常斷點用一個紅色的閃電表示(斷點響應(yīng)以后才會顯示)。


使用快捷鍵 Ctrl + Shift + F8 打開斷點管理對話框,按如下步驟進(jìn)行添加:


添加異常斷點



設(shè)置斷點響應(yīng)的異常類型:


設(shè)置異常類型



運(yùn)行程序,查看效果:


異常斷點效果



可以看到,當(dāng)發(fā)生(指定類型)異常后,程序停在了發(fā)生異常的代碼行,并在前面放一個紅色的閃電,提醒你就是這行代碼要搞事情。


斷點還支持以下配置:


異常斷點配置項


同樣,Caught exception 和 Uncaught exception 最少選一個。


更多玩法


使用快捷鍵?Ctrl + Shift +?F8?打開斷點管理對話框,可以解鎖更多斷點的玩法:


斷點管理



比如可以設(shè)置斷點在滿足指定條件時才響應(yīng):



更多玩法留給你去探索。



斷點圖標(biāo)


下面是 IDEA 中各種類型斷點在不同狀態(tài)下的圖標(biāo)示意:


斷點圖標(biāo)示意


玩轉(zhuǎn) IDEA 花式打斷點,從此告別 996的評論 (共 條)

分享到微博請遵守國家法律
延长县| 深水埗区| 浏阳市| 伊川县| 宁陵县| 黑水县| 拉萨市| 南城县| 政和县| 漳浦县| 瑞安市| 永顺县| 循化| 白山市| 南召县| 宝清县| 乌恰县| 门源| 广昌县| 阿巴嘎旗| 凤城市| 杭锦后旗| 庆安县| 南昌县| 隆尧县| 房山区| 临洮县| 太谷县| 洞口县| 九台市| 阳原县| 北票市| 厦门市| 吉首市| 顺义区| 铜梁县| 泌阳县| 达州市| 鄱阳县| 青田县| 丹江口市|