读 《Java核心技术》调试节 个人感悟

读 《Java核心技术》调试节

ps:此文当做个人记录文

调试技巧

原文:
假设编写了一个程序,并对所有的异常进行了补货和恰当的处理
然后运行这个程序,但还是出现问题,现在该怎么办呢?
当然如果有一个方便且功能强大的调试器就太好了,调试器是各
种专业集成开发环境的一部分。

原文中提到的情况我相信很多人都会遇到,至少我遇到挺多次,又是写错一个符号也可能会出现我们认为不可能出现的意外错误。

一般遇到这种情况,我都会在出错的语句附近使用语句System.out.println(x); 打印出我要检测的可能出错的变量/对象某些属性的值等,而书中也列出另一条语句尽管效果大差不差:Logger.getGlodal().info(x);

如果x是一个数值,这会被转换为字符串,如果x是一个对象,那么Java会调用这个对象的toString方法。此时,如果想要获得隐式参数对象的状态,就可以打印this对象的状态:
Logger.getGlobal().info(“this=”+this);
Java类库中的绝大多数类都覆盖了toString方法,以便能够提供有用的类信息。这样会使调试更加便捷。在自定义的类中,也应该覆盖toString方法。(便于调试/查看)

以上是书中提到调试技巧第一小节 而接下来则是我最喜欢也是我用写文章来记录一大节的直接原因

书中原文

2) 一个不太为人所知但却非常有效的技巧是在每一个类中放置
一个单独的main方法。这样就可以对每一个类进行单元测试

简单一句话让我觉得这本书算是没白读了(虽然读完会忘,但好歹有个印象),在每个方法中定义一个main方法来进行单元测试,这谁都知道这样行得通,我也知道这样可以,可能会有些瑕疵,但这个简单的方法我为什么一直都没想到。

但我觉得还是有点担忧,每个类都添加一个main方法是不是会影响的整体代码或是增加了运行时间。但下面的原文则打消了我的忧虑:

利用这种技巧,只需要创建少量的对象。调用所有的方法,并
正确地运行就可以了。另外,可以为每个类保留一个main方法
然后分别为每个文件调用Java虚拟机进行运行测试。在运行applet
应用程序的时候,这些main方法不会被调用,而在运行应用程序
的时候,Java虚拟机只调用启动类的main方法

可以说我就是为了第二节才写的这篇记录文章,看我这个后我又想了很多,比如我是不是还漏了很多我可以发现的很简单但又是不太为人所知的技巧,直到时间慢慢流逝我才放弃去想,还是沉下心来继续学习吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值