Eclipse调试的三个小技巧
来源:互联网 发布:克林战斗力官方数据 编辑:程序博客网 时间:2024/05/20 05:07
1.设置条件断点
项目异常中止后,总也找不到原因,在项目中应用了第三方类库的时候更可能发生这种情况。这种情况的原因有可能是代码中catch了异常但是没有做任何处理(最可恨的是还屏蔽了打印错误信息)。
下面以简短的例子进行说明
public class User{ int id; String name; public User(int id, String name) { this.id = id; this.name = name; } public User(){ }//getXX ignore there//setXX ignore there}
public static void main(String[] args) { User userEmpty = new User(); userEmpty = null; User user0 = new User(23, "12321"); try { if (userEmpty.equals(user0)) { System.err.println(""); } } catch (Exception e) {// e.printStackTrace(); } }
这样一块代码,直接运行,异常终止,但是没有任何错误信息。调试这样的错误可能就有些麻烦了。如果使用条件断点,就会“柳暗花明”。
Eclipse中进入debug View,然后如下图所示,点击“Add java Breakpoint Exception”
在弹出的对话框中输入NullPointerExcetion,点击确定。
再次运行
ok!,找到问题出处了。
2.查看对象的具体信息(这里不重写bean的toString())
将Main方法修改为如下内容:
public static void main(String[] args) { User user0 = new User(23, "12321"); Map<String, User> userMap=new HashMap<String,User>(); userMap.put("0", user0); System.err.println();}
在打印空信息的那一行打下断点,运行查看map信息如下:
即使将每一个节点都展开,也不能看到user0的id和name信息。下面点击Variable View中的“Show Logical Structure”,如下图所示:
再次运行程序,查看变量
ok,用户信息出现了!
3.动态修改变量的值
将Main函数修改为如下内容:
public static void main(String[] args) { User user0 = new User(23, "12321"); System.err.println(); System.err.println(user0); }
打印空信息的那一行打上一个断点,debug查看信息:
然后如下图所示,在Variables View中user0对象的name属性上右键单击选择“Change Values”,输入“erhuo”,确定。
F6单步调试,查看结果
ok,修改变量信息成功!
参考文章:
Effective Java Debugging with Eclipse
0 0
- Eclipse调试的三个小技巧
- Hibernater的三个小技巧
- 浅谈Eclipse快捷键的使用方法及调试小技巧
- eclipse调试查看属性值的小技巧
- Eclipse 调试的技巧
- eclipse的调试技巧
- eclipse之断点调试小技巧
- Eclipse中的一些调试小技巧
- 三个制作网页的小技巧
- Chrome的三个实用小技巧
- HTML居中的三个小技巧
- Hibernate三个小技巧
- [eclipse] 三个操作技巧
- eclipse 三个操作技巧
- android 调试的小技巧
- 我的调试小技巧
- Eclipse的一些调试技巧
- eclipse调试的常用技巧
- mongoDB--初识mongoDB&&安装过程
- 优就业JS教程-JavaScript创建对象4种方法详解
- winedt 自动换行
- 查看keystore,在Eclipse和Android Studio众
- Eclipse的一些常用命令
- Eclipse调试的三个小技巧
- 转载:位图和矢量图的区别
- CentOS下使用crontab+mysqldump实现定时自动备份数据库
- MATLAB 神经网络训练参数解释
- libgdx 源码导入 idea 工具
- 隐藏(删除) Preference 小结
- Android数据转化为Excel表格导入导出
- DM9000网卡驱动简析
- Python抽象之类