0
点赞
收藏
分享

微信扫一扫

java基础 myeclipse的Debug的使用 ————没有异常提示的设计错误。


一、源代码:

话不多说,上老师的课程案例代码,本着要求最大值的需求写,结果出来的不是最大值,用debug来改。没改之前

package prectice;

public class DebugTest {
	
	//输出两个数中最大值

	public static void main (String[] args){
		
		int i = 10;
		int j = 20;
		
		System.out.println("i = " + i + ",j = " +  j);
		
		DebugTest test = new DebugTest();
		
		int max  = test.getMax(i, j);
		
		System.out.println("max = "+ max);
		
	}
	
	private int getMax(int k, int m ){
		
		int max  = 0;
		if(k<m){
			max = k;
		}else {
			max = m;
		}
		return max;
	}
	
}

输出结果为如下,显然不是想要的结果:

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_java基础

二、调试程序有两种方式:

①、System.out.println();(太多代码的情况下,需要写很多syout语句,查完bug还需要删除syout语句,所以不适用)

②、Myeclipse(Eclipse)的debug调试

一般采用第二种方式调试:

调试步骤为:

1.设置断点(注意:可以设置多个断点)

2.debug as java application

3.常用操作:

step into 跳入【F5】(进入当前行所调用的方法中)

step over 跳过【F6】(执行完当前行的语句,进入下一行)

step return 跳回【F7】(执行完当前行所在的方法,进入下一行)

drop to frame                 (执行当前行所在方法的第一行)

resume 恢复    (执行完当前行所在断点的所有代码,进入下一个断点,如果没有就结束)

 

调试开始:

先设置两个断点:第一个断点:在”System.out.println("i = " + i + ",j = " +  j);“

的代码行的数字标识处的外边双击两次,出现一个点,(第一个断点设置完成)

第二个断点:在“int max  = test.getMax(i, j);”的代码行的数字标识处的外边双击两次,出现一个点,

(第二个断点设置完成)

将上面的源代码在Eclipse(Myeclipse)中右键单击Debug as-->Proceed-->Yes

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_java基础_02

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_数字标识_03

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_数字标识_04

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_java基础_05

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_java基础_06

目前程序运行到   第一个断点时,

有以下内存中加载有   (name列表下的)数组的形参,以及变量 i,j   后面的(value)变量值

Outlined显示的时当前类下的功能

在IDE工具栏有以下图标:

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_java基础_07  Step Into [F5] (进入方法中看方法的内容)

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_赋值_08 Step Over[F6](一行代码一行代码的往下走)

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_debug检测_09   Step Return [F7]   是step into的逆过程,即从方法中出来

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_java基础_10

 

接下来点击step  over  ,就进入到DebugTest test = new DebugTest();这一行,(注意:只是到了这一行,但是还没开始执行)

因此,继续step over,可以看到DebugTest test = new DebugTest();这一行代码执行之后,在Variables栏目中的变量有了个新的变量(test)

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_赋值_11

这时(判断是方法体出错了,所以进入方法体测试),即运行完DebugTest test = new DebugTest();之后我们点击

step into [F5]  进入到getMax()方法中

java基础 myeclipse的Debug的使用   ————没有异常提示的设计错误。_System_12

此时再点击step over  ,这时   Variables栏目多了个max变量,并且值为0  k==10,  m==20

在源码中:k<m,正确,在点击step over 此时进入到  max = k;    光标移动到max 和k 处,看到k==10,

继续step  over ,看到  Variables栏目多了个max变量,并且值为10,   因此可以知道是 max = k;   这个语句出现错误,

这个max赋值错误,需要把m赋值给max,    k改成m即可.

检查结束,这是点击   step  return  按钮,退出方法.

 

举报

相关推荐

0 条评论