浅谈工作/学习中找bug的思路_0_调试、try-catch以及打印报错信息和百度的方法、No default constructor for entity: com.gyf.bos.mod

17 篇文章 0 订阅
10 篇文章 1 订阅
本文分享了在工作或学习中遇到代码移植后出现bug的解决思路。首先,强调了检查移植代码的整体一致性,尤其是模型类的细节。作者通过实例展示了在Action层发现问题,调整赋值方式避免使用有参构造函数,从而解决问题。其次,介绍了使用调试和百度搜索错误信息的方法,通过添加无参构造函数成功修复问题。总结了移植代码时注意每个细节和有效利用资源的重要性。
摘要由CSDN通过智能技术生成

浅谈工作/学习中找bug的思路_0

调试、try-catch-以及打印报错信息和百度的方法

前言

实际工作场景
一个方法,被多个Action调用都正常,但是被其中一个Action调用的时候就报错了
一个方法,被多个Action调用,其中一个Action调用的时候就报错了
这个问题也是困扰了我差不多一整天
基本上快绝望了,也没找到问题的原因
有时候吧,思路比什么都重要,一定要知道该从哪里去找原因,这样才能快速定位问题,从而解决问题
如果方向都没有,一个项目上万行代码,那不是大海捞针吗,所以我写这篇文章,一来是告诉自己,提醒自己
一些问题的解决思路,二来也是希望能够对看到这篇文章的同学有所帮助

描述

在这里插入图片描述
在这里插入图片描述

把这个取派员的分页查询功能,
移植到区域设置
但是移植(复制粘贴相关代码)之后并没有效果,我找了一整天都没找到原因
解决办法
最简单直接的办法就是去看完整的已经可以执行该功能的完整代码,包括三层的各个层次递进,当然也包括model,
并不是说我在Action调用的是同一个方法就行了
那其它地方你们是不是一样呢?
要知道,在工作中这种问题解决不了,给老板的印象是非常不好的!!!
为什么A项目已经有在这个功能了,同样的数据库,同样的框架,重要的还是完全同一套代码,我让你在B项目把这个功能加上来你都加不了呢?真的说不过去,后果是什么,咳咳……,轻则否定你的能力,不会被重用,重则步入提桶哥的后尘,去厂里忽悠小姐姐
我们怎么回怼是吧,根本没办法,确实没理亏
所以我们必须要解决,其实也不难,代码看懂了很容易(不用全部看懂,大概看懂就行)
切记最简单的办法就是:去看完整的已经可以执行该功能的完整代码,包括三层的各个层次递进,当然也包括model

解决思路1 —— 检查移植的代码,细枝末节也不要忽略,要整体上保持一致

首先我们看取派员的分页查询是怎么实现的,jsp页面我就不说了,直接复制,然后改改就行了,这个没什么特别要注意的
主要是看Action
在这里插入图片描述

那么我们区域设置的Region也是一样的操作
在这里插入图片描述
为什么不行呢,我们需要逐步排查
比如service层、然后在往上
dao层,然后再 往上 base层
再往上,model,这个非常容易漏掉
我们对比他们之间的不同
比如model
在这里插入图片描述
一定要善于去发现,那么如果他们保持一致会不会就行了,我们试着把model里面这个构造函数去掉
去掉之后Action报错了,这是意料之中的,我们有什么办法,使之不用去调用我们删掉的那个有参构造函数呢
在这里插入图片描述
不用去调用我们删掉的那个有参构造函数的办法很多,之我之前会这么写,可能是跟我之前学习C#留下的坏习惯有关吧,
我居然喜欢这样去给对象赋值,my god!这样赋值是不规范的,很容易引起问题,一定不要这样去赋值(除非真的没有办法了!!!)
我们改成规范的赋值写法就不需要这个有参构造函数了,如下
在这里插入图片描述
这样就对了,直接new出来,然后再逐步通过set赋值

然后就行了
在这里插入图片描述

解决思路2——,调试和百度,会怎么找到问题所在和怎么百度以及怎么解决问题

还是刚刚那个问题,我们换一种思路,重新来

1、先调试,定位到可能出错的代码段,try-catch起来,找报错信息,当程序功能没有实现时,我们确认是有问题了
但是又不知道问题出在哪
千万别光看服务器(这里是Tomcat)没有问题就行,Tomcat启动了只能说明服务没有问题
把错误信息打印出来(非常重要)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
去检索这段报错信息,检索报错1信息也是有技巧的,要检索关键的地方
hibernate3.HibernateSystemException: No default constructor for entity: com.gyf.bos.model.Region

在这里插入图片描述
在这里插入图片描述
经过各路大神入的坑和记得笔记,我们思路就有了,那就加个无参构造函数试试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启看看
这不就成了
在这里插入图片描述

总结

1、要学会移植代码,只要懂大概,而且每层不要漏掉任何一个细节
2、要学会如何百度解决问题,,这个非常重要

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值