java调试输出语句_Java常用的输出调试技巧

--------siwuxie095

Eclipse 开发中常用的输出调试技巧:

先在左侧的

Package Explorer,右键->New->Java Projects,

命名为

Debug,其他参数默认

84431c307f6383f767be1ef77cfa2be7.png

点击 Finish,在 src 上,右键->New->Package,命名为 control

〔编程时最好将每一个类都创建一个包,即便是很简单的包名,这是一个好习惯〕

0a4cd546b7a1ee7e39e98e4cdc35a3a5.png

69fc90ff8a74a60f25095346c9ceab05.png

点击 Finish,自动生成了一个 package-info.java,可以删掉

040c981eb0961a3bb718b74b33d81a9b.png

4a88e0e23d84232bb23599ac585c1452.png

在 control 上,右键->New->class,命名为 DebugTest,

勾选上 public static void main(String[] args),自动创建

一个主方法,点击

Finish 完成

7ee4de3aaa19b25e8ea8a08a9ffda5ff.png

最常用的输出System.out.println();

可以使用快捷键syso,输入syso,回车即可

〔会出提示〕

faeb26b00e9856bcae090a1c73df6b0f.png

这个输出函数支持的类型非常多,如:字符串、数字、布尔…甚至是很多看起来

不可思议的对象类型

packagecontrol;

importjavax.swing.JFrame;

public classDebugTest {

public staticvoidmain(String[] args) {

System.out.println(123456);

System.out.println(true);

System.out.println("this is string debug info");

//输出一个窗体这里的println()可以接收任何的类型传入值是一个Object

//即只要是一个对象,就可以将它输出

//这里所有的对象都是调用它的toString()方法

//输出:JFrame()的默认的toString()方法

System.out.println(newJFrame());

}

}

Eclipse中:

42c1ca5e63777ab949a3f047e9ccdfbe.png

println() 也可以接收传入值为 Object 的任何类型

82b5e40e97e88d07168207e5e6532450.png

运行一览:

ead5307cff0f092aa84e92fc3de78258.png

如果将

JFrame() 复写一下,复写其 toString() 方法:

packagecontrol;

importjavax.swing.JFrame;

public classDebugTest {

public staticvoidmain(String[] args) {

System.out.println(123456);

System.out.println(true);

System.out.println("this is string debug info");

//输出一个窗体这里的println()可以接收任何的类型传入值是一个Object

//即只要是一个对象,就可以将它输出

//这里所有的对象都是调用它的toString()方法

//输出:JFrame()的默认的toString()方法

System.out.println(newJFrame(){

@Override

publicString toString() {

return"This is a JFrame";

}

});

}

}

Eclipse中:

99efbd2acc16c580123474da13f4b01f.png

运行一览:输出自定义

toString() 方法给出的返回值

979556ccd4797ca9eaf11f94429575cd.png

在实际应用中,需要使用不同颜色对输出信息进行区分

黑色:System.out.println();『快捷键:syso』

红色:System.err.println();『快捷键:syse/syser /syserr』

〔err 即 错误,一般用于输出错误信息〕

2f4f9a5ec63bc01118ebeb6cf54d1542.png

再如:

packagecontrol;

public classDebugTest {

public staticvoidmain(String[] args) {

//新建一个数组ints,容量为5

int[] ints=newint[5];

//for循环对ints数组逐个赋值

for(inti = 0; i < ints.length; i++) {

ints[i]=i+1;

//输出i+1

System.out.println(i+1);

}

}

}

Eclipse中:

7497cfbe6b81636db0c7bf5c16f2415b.png

运行一览:

a433c25c93976015ccc161c4c90a8c5c.png

如果程序中出现错误,如:上面的循环次数是根据

ints.length 来判断,

如果强制改为 6,数组在访问时就会抛出数组越界异常,使用

Try/catch

Block 包裹整个 for循环

〔选中整个

for循环,右键->Surround With->Try/catch Block〕

ea699b81b414ce8d6e71fc033e995f7a.png

代码:

packagecontrol;

public classDebugTest {

public staticvoidmain(String[] args) {

//新建一个数组ints,容量为5

int[] ints=newint[5];

try{

//for循环对ints数组逐个赋值

for(inti = 0; i < 6; i++) {

ints[i]=i+1;

//输出i+1

System.out.println(i+1);

}

} catch(Exception e) {

//e.printStackTrace();

//已知错误为数组越界,直接表明

System.err.println("数组越界!");

}

}

}

运行一览:

(注意:这里应用了配色方案,所以颜色不是纯正的黑色和红色,

但也能区分出不同)

72054306838c22d72f9392fcdd463282.png

调试非常重要的一个技巧就是

下断点

如:需要让程序每次输出

i+1 前都暂停,可以在System.out.println(i+1);

对应的行号上,双击(取消断点,再在对应行号上双击即可)

63cc03d3d12674ee0c244402835eb9b3.png

接下来运行时就是调试,而不是直接运行了,点击

调试

按钮

进入

调试模式,点击

Yes 即可

〔调试

Debug 快捷键:F11,运行 Run 快捷键:Ctrl+F11〕

(Debug 按钮 的右边是 Run)

416d33799b1ba13212f57147aa6932cf.png

5a0d0ac2a21d16bd09ee59ca46eb16dd.png

进入调试模式:每次暂停后,都点击

Resume 按钮继续运行,或使用快捷键 F8

0f1524732722476d94610856fad51c4e.png

c0421aad0993a95f4b411e79988cbee9.png

调试完毕,点击右上角的

Java 按钮,切换回 Java工作空间

(Java 按钮 的右边是 Debug)

d7a78bd3aed0971d6cf13501d5511a09.png

如果取消掉

catch 中e.printStackTrace(); 前面的注释:

〔其实这是默认生成的一行代码,即

在控制台(或命令行)中打印出所有的错误追踪信息〕

packagecontrol;

public classDebugTest {

public staticvoidmain(String[] args) {

//新建一个数组ints,容量为5

int[] ints=newint[5];

try{

//for循环对ints数组逐个赋值

for(inti = 0; i < 6; i++) {

ints[i]=i+1;

//输出i+1

System.out.println(i+1);

}

} catch(Exception e) {

//默认生成的一行代码

//可以在控制台(或命令行)打印出所有的错误追踪信息

e.printStackTrace();

//已知错误为数组越界,直接表明

System.err.println("数组越界!");

}

}

}

运行一览:

输出信息为

ArrayIndexOutOfBoundsException,即数组越界异常

最大值是 5,错误行数:14

dc2dec7cebf16ff62b1290e86c749ef7.png

所以

Try/catch Block 中,自动生成的e.printStackTrace();可以在程序出错时

打印错误追踪列表,据此,就能追踪到最终错误的来源和错误的类型

【made by siwuxie095】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值