Quantcast
Channel: 簡睿隨筆
Viewing all articles
Browse latest Browse all 897

[IntelliJ IDEA] Java / JavaScript除錯小技巧

$
0
0

在寫程式的過程中,有相當多的時間都處於偵錯狀態,雖然使用了IDE可以做逐行追蹤除錯,但原始的「插旗標」除錯法還是相當管用,在插旗標的過程中逐步檢視程式,並逐漸縮小出錯範圍,最終達到「夾殺」臭蟲而完成除蟲任務,但接下來的「清理戰場」可不要鬆懈了,要將不再需要的除錯指令清除掉,以免一不留神將除錯的alert對話窗讓使用者看到…以下是我在使用IntelliJ IDEA寫JavaScript程式除錯時的小技巧,希望對網友們有點用處。

通常在除錯時我們會用alert()或console.log()等指令來顯示除錯訊息,在除錯初期為了要確認錯誤發生的來源會在程式流程經過的多個程式裡插旗子,到最後要清除時又要花時間到處去找這些指令,為了容易辨識與迅速找到這些指令,我會建立IDEA的Live Template,把插旗子的檔名、函數名與行號等寫到除錯訊息裡,Live Template範例如下:

▼ Live Template: cl,輸出console.log(“檔名 函數名 (#行號):" + 變數); //TODO:

console.log("$FILENAME$ $FUNCTION$ (#$LINE$):" + $VAR$);  //TODO:debug

▼ Live Template: al,輸出alert(“檔名 函數名 (#行號):" + 變數); //TODO:

alert("$FILENAME$ $FUNCTION$ (#$LINE$):" + $VAR$);  //TODO:debug

Live Template裡建立了4個自訂變數,按下〔Edit variables〕就能指定變數的取值方法。
enter image description here

變數名稱 運算式 有值則略過
(Skip if defined)
說明
FILENAME fileName() 勾選 填入展開Live Template時的檔名
FUNCTION jsMethodName() 勾選 填入展開Live Template時的函數名
LINE lineNumber() 勾選 展開Live Template時的行號
VAR jsSuggestVariableName() 不勾選 填入建議的變數名稱,可再修改

enter image description here

插旗子專用的除錯Live Template建立完畢,爾後在需要處就能輸入「cl 〔Tab鍵〕」或「al 〔Tab鍵〕」來產生需要的除錯訊息,因為彈出的對話窗或主控台輸出帶有檔名和行號,因此也能更快速的找到旗標位置而加快程式的修改速度。

Live Template最後附加的註解「//TODO:」則是利用IDEA的TODO功能而為的方便善後之用。IDEA的TODO側邊按鈕原本用義是將專案裡加上待辨處理的註解都過濾出來,讓我們逐一將這些待辨處理完畢,而我們就可以設定特定的TODO字串以快速集中所有的除錯指令。TODO字串設定畫面如下:

▼ 找出所有含有大寫的 TODO: 註解

enter image description here

除錯完畢後按一下TODO側邊按鈕就能找到所有的除錯指令:
enter image description here

點擊視窗裡的每行指令就能跳回該行指令處,也就能輕而易舉的刪掉這些不再需要的指令了。

##


您可能也會有興趣的類似文章

The post [IntelliJ IDEA] Java / JavaScript除錯小技巧 appeared first on 簡睿隨筆.


Viewing all articles
Browse latest Browse all 897

Trending Articles