浅谈工作/学习中找bug的思路_0_调试、try-catch以及打印报错信息和百度的方法、No default constructor for entity: com.gyf.bos.mod
浅谈工作/学习中找bug的思路_0
文章目录
- 浅谈工作/学习中找bug的思路_0
- 调试、try-catch-以及打印报错信息和百度的方法
- 前言
- 描述
- 解决思路1 —— 检查移植的代码,细枝末节也不要忽略,要整体上保持一致
- 解决思路2——,调试和百度,会怎么找到问题所在和怎么百度以及怎么解决问题
- 总结
调试、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、要学会如何百度解决问题,,这个非常重要
浅谈工作/学习中找bug的思路_0_调试、try-catch以及打印报错信息和百度的方法、No default constructor for entity: com.gyf.bos.mod相关推荐
- 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广
没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...
- Homepage Machine Learning Algorithm 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning
原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...
- 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning
原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...
- 浅谈深度学习中的激活函数
原址 激活函数的作用 首先,激活函数不是真的要去激活什么.在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题. 比如在下面的这个问题中: 如上图( ...
- 浅谈元学习中的支持集和查询集
一.元学习概述 元学习是机器学习的一种学习范式,最早由人工智能科学家Jurgen Schmidhuber在1987年5月14日提交的博士论文中提出的概念.元学习使用较多的应用场景是有标注数据很少的情况 ...
- html 怪异模式,CSS_浅谈CSS编程中的怪异模式,怪异模式盒模型
今天学习了 - phpStudy...
浅谈CSS编程中的怪异模式 怪异模式盒模型 今天学习了一下css3的box-sizing属性,顺便又温习了一下css的盒模型,最后觉得有必要对盒模型做一个全面整理. 先不考虑css3的情况,盒模型一共 ...
- 让数据站住脚-浅谈用户研究中的信度与效度
让数据站住脚-浅谈用户研究中的信度与效度 在用户研究工作中,如何让自己的数据和结论更有说服力,是很重要的问题.最近将自己积累的用研信度和效度的笔记整理一下,罗列在文中,希望对大家有所帮助. 一.调查的 ...
- 管理经济学计算机会成本,浅谈管理经济学教学中机会成本运用.doc
浅谈管理经济学教学中机会成本运用 浅谈<管理经济学>教学中机会成本运用 摘要:本文就<管理经济学>教学难点之一的机会成本的运用做了简要的介绍,主要涉及机会成本的定义.使用条件. ...
- 计算机创业创新浅谈,浅谈计算机教学中如何渗透创业教育
<浅谈计算机教学中如何渗透创业教育>由会员分享,可在线阅读,更多相关<浅谈计算机教学中如何渗透创业教育(5页珍藏版)>请在人人文库网上搜索. 1.浅谈计算机教学中如何渗透创业教 ...
最新文章
- jquery autocomplete demo
- Linux CentOS 7上安装极点五笔
- Linux Kernel中的系统调用分析
- ABAP的OPEN SQL和Hybris Commerce的Flexible Search简介
- [pytorch、学习] - 3.10 多重感知机的简洁实现
- 与熊论道为什么解码不了_楼上熊孩子瞎蹦跳,楼下邻居投诉无果,一招吓哭“熊一家”...
- IntelliJ IDEA 14 license key gen
- 发布一个MsBuild任务组件-可用于同时发布多个网站
- c ++递归算法数的计数_计数排序算法–在C / C ++中实现的想法
- oracle内存架构(一)
- javplayer 使用教程_工程测绘CASS教程+视频讲解+插件大合集,小白3天学会绘图
- 摘来的 esri 的 js 的 一些东西 来自ESRI中国社区 by xiaoyaohu
- 刽子手c语言,古代神秘职业:刽子手的祖师爷
- 绕过tp路由器管理密码_路由器管理员密码忘了怎么办 路由器管理员密码忘了解决方法【介绍】...
- 模乘与Montgomery 模乘
- 数智化升级:红蜻蜓的转型之路(上)
- Unity实现发光材质
- Jinja2渲染的两种方式
- 移动硬盘插入提示需要格式化RAW_为什么U盘插电脑上提示需要格式化?想让资料不丢失,这样就可以...
- 警惕 “格机软件” 格式化手机全字库..不要轻易给不明觉厉的软件给root权限