浅谈工作/学习中找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相关推荐

  1. 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广

    没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...

  2. Homepage Machine Learning Algorithm 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning

    原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...

  3. 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning

    原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...

  4. 浅谈深度学习中的激活函数

    原址 激活函数的作用 首先,激活函数不是真的要去激活什么.在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题. 比如在下面的这个问题中: 如上图( ...

  5. 浅谈元学习中的支持集和查询集

    一.元学习概述 元学习是机器学习的一种学习范式,最早由人工智能科学家Jurgen Schmidhuber在1987年5月14日提交的博士论文中提出的概念.元学习使用较多的应用场景是有标注数据很少的情况 ...

  6. html 怪异模式,CSS_浅谈CSS编程中的怪异模式,怪异模式盒模型 今天学习了 - phpStudy...

    浅谈CSS编程中的怪异模式 怪异模式盒模型 今天学习了一下css3的box-sizing属性,顺便又温习了一下css的盒模型,最后觉得有必要对盒模型做一个全面整理. 先不考虑css3的情况,盒模型一共 ...

  7. 让数据站住脚-浅谈用户研究中的信度与效度

    让数据站住脚-浅谈用户研究中的信度与效度 在用户研究工作中,如何让自己的数据和结论更有说服力,是很重要的问题.最近将自己积累的用研信度和效度的笔记整理一下,罗列在文中,希望对大家有所帮助. 一.调查的 ...

  8. 管理经济学计算机会成本,浅谈管理经济学教学中机会成本运用.doc

    浅谈管理经济学教学中机会成本运用 浅谈<管理经济学>教学中机会成本运用 摘要:本文就<管理经济学>教学难点之一的机会成本的运用做了简要的介绍,主要涉及机会成本的定义.使用条件. ...

  9. 计算机创业创新浅谈,浅谈计算机教学中如何渗透创业教育

    <浅谈计算机教学中如何渗透创业教育>由会员分享,可在线阅读,更多相关<浅谈计算机教学中如何渗透创业教育(5页珍藏版)>请在人人文库网上搜索. 1.浅谈计算机教学中如何渗透创业教 ...

最新文章

  1. jquery autocomplete demo
  2. Linux CentOS 7上安装极点五笔
  3. Linux Kernel中的系统调用分析
  4. ABAP的OPEN SQL和Hybris Commerce的Flexible Search简介
  5. [pytorch、学习] - 3.10 多重感知机的简洁实现
  6. 与熊论道为什么解码不了_楼上熊孩子瞎蹦跳,楼下邻居投诉无果,一招吓哭“熊一家”...
  7. IntelliJ IDEA 14 license key gen
  8. 发布一个MsBuild任务组件-可用于同时发布多个网站
  9. c ++递归算法数的计数_计数排序算法–在C / C ++中实现的想法
  10. oracle内存架构(一)
  11. javplayer 使用教程_工程测绘CASS教程+视频讲解+插件大合集,小白3天学会绘图
  12. 摘来的 esri 的 js 的 一些东西 来自ESRI中国社区 by xiaoyaohu
  13. 刽子手c语言,古代神秘职业:刽子手的祖师爷
  14. 绕过tp路由器管理密码_路由器管理员密码忘了怎么办 路由器管理员密码忘了解决方法【介绍】...
  15. 模乘与Montgomery 模乘
  16. 数智化升级:红蜻蜓的转型之路(上)
  17. Unity实现发光材质
  18. Jinja2渲染的两种方式
  19. 移动硬盘插入提示需要格式化RAW_为什么U盘插电脑上提示需要格式化?想让资料不丢失,这样就可以...
  20. 警惕 “格机软件” 格式化手机全字库..不要轻易给不明觉厉的软件给root权限

热门文章

  1. 汉诺塔python代码解释_python实现汉诺塔算法
  2. QT创建工程时不存在Kits的解决方案
  3. 黑马程序员golang_成为Go程序员的7个阶段
  4. 视频怎么转gif动图?
  5. python 物理实验_物理实验
  6. ABB选项添加,ABB万能密钥
  7. 争对让望对思野葛对山栀注解_笠翁对韵·上卷·四支在线阅读-翻译及赏析
  8. Microsoft visual Studio2017 中番茄visual assist 破解
  9. python练习之excel表格管理
  10. 时间戳和日期转换工具