1. F8,表示當前實現繼續運行直到下一個斷點。
2. F5,表示進入當前方法。
3. F6,表示運行下一行代碼。
4.F7,表示退出當前方法,返回到調用層。
一、J2SE中debug
設置條件斷點
1 package tk.dongyeblog; 2 3 public class TestDemo { 4 public static void main(String[] args) { 5 TestDemo td = new TestDemo(); 6 td.print1to10(); 7 } 8 public void print1to10(){ 9 for (int i =1; i <= 10; i++) { 10 System.out.print(i+""); 11 } 12 } 13 14 }
設置條件斷點:在函數print1to100中的system.out.print語句設置條件斷點:在斷點處右擊,選擇Breakpoint Properties,打開條件斷點允許框,輸入條件i==5。選擇條件為真時,觸發中斷。回到主程序Debug運行之,可以看到程序在輸出到4之后停止,此時i值為5
另外一個例子:
TestDemo.java
1 package tk.dongyeblog; 2 3 public class TestDemo { 4 public static void main(String[] args) { 5 Person p = new Person(); 6 String name = p.getName(); 7 if(name.equals("")){ 8 System.out.println("姓名不能為空!"); 9 } 10 } 11 }
Person.java
1 package tk.dongyeblog; 2 3 public class Person { 4 private String name; 5 private int age; 6 7 public String getName() { 8 return name; 9 } 10 public void setName(String name) { 11 this.name = name; 12 } 13 public int getAge() { 14 return age; 15 } 16 public void setAge(int age) { 17 this.age = age; 18 } 19 }
運行之后出現:Exception in thread "main" java.lang.NullPointerException
at tk.dongyeblog.TestDemo.main(TestDemo.java:7)
下面運行debug進行調試,首先定義斷點。然后啟動debug模式。選中要觀察的對象,右鍵watch,Experssions欄里會出現選中的屬性。從圖中可以看到name的value為null。所以會出現空指針異常。應改為if(name==null || name.equals("")){
二、在WEB項目中啟動debug模式
在運行JavaEE項目時,需要在eclipse內部啟動服務器,並在servlet程序中設置斷點,在執行到斷點時會自動debug模式。其他和J2SE調試類似
優秀的程序員總是花80%的時間來思考如何解決問題,20%的時間來動手完成代碼,而糟糕的程序員總是用20%的時間去寫代碼,80%的時間去調試代碼,動手之前盡量想好如何去做,並且已經為你自己的思路做了充分的實驗。