前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >程序开发中那些莫名奇妙的bug

程序开发中那些莫名奇妙的bug

作者头像
用户5166556
发布2019-04-16 14:12:32
6100
发布2019-04-16 14:12:32
举报
文章被收录于专栏:让技术和时代并行

众所周知,程序员的使命,就是不停的编程,调试,测试,直到上线为止。但其中相当一部分时间都花费到调试上,因为我们总会在开发过程中因为不同的环境,编码语言规则,导致我们遇到各种各样的奇葩问题,当别人发现这些问题时,我们很惊讶的告诉别人,这不可能!或者说要不然你重启下,或者你电脑抽风了吧,实际上,有些问题,是因为我们的个人习惯导致的bug,百分之九十的情况下通过重启根本解决不了任何问题,所以我们在编程过程中一定要养成谨慎,认真的习惯。从而节省我们更多的时间去做更有意义的事情。

下面是我以前在开发中曾经遇到过的问题,分享给大家,大家引以为戒! 路径名称不区分大小写

1:例如:在web端程序的控制层action返回一个页面路径时,假设路径中的某个元素使用了大写,而静态页面使用了小写,如果你在Windows下开发可能不会出现任何问题,因为Windows下不区分大小写,如果你的服务要是部署到Linux服务器上,那时日志里面一直出现504异常,你就彻底歇菜了。

2: html页面中id重复 如果你使用jq选中一个id进行操作,忽然发现失灵了,怎么操作都不起作用,你就应该检查下你的页面中是否存在重复的id。

3:前端数据传到后台时掺杂前端的数据。 有时我们为了体验更好,都习惯在输入框里面使用placehoder,殊不知,在IE8下,placehoder里面的值会直接传到后台,这时就应该加上判断,再比如js一直报错‘缺少右括号’,检查一下你的代码是不是有空格,浏览器默认结束了,要注意加上\” \”字符防止浏览器认为你的字符结束。还有如果你的前端代码写的不标准,因为浏览器解析的原因,很可能把一些/等等前端符号传到后端,最后造成一些莫名其妙的错误。

4:使用数学中的逻辑运算符 乍看起来没有问题,我这样用都用了几十年了,思维定势啊,找了半天,恍然大悟,计算机中比较运算符是不能这样使用的 。

5:文本文档的编码格式问题 通常我们在打开记事本,编辑文字时,Windows下记事本的编辑格式默认使用ANSI,它包括gbk,gb2312,但是我们Java程序习惯使用utf8,如果我们把这个文件读到程序中,可想而知,全是乱码(有时后果很严重的)。

6:忽然发现Java中的repalaceAll不能使用了。 String str = “我们都是中国人…….”; String replaceAll = str.replaceAll(“.”, “”); 这里面的点号,是无论如何也不能替换掉,不仅不能替换掉,而且其他文字也全没了,这时你如果细心点,你会发现在Java中点号是特殊字符,它代表任何字符。(详细的你可以参考正则表达式部分转义字符的api)。

7:char x = ‘x’;System.out.println(true?250:x); 结果为ú,对于三目运算符中的两个结果,如果一个是常量,一个是类型T的变量,则常量会被转型为类型T。

8:mysql数据库字段值的大小写问题。 如果插入2个不同的值当做key,但是数据库就是抛出duplicated key,这时你需要仔细看一下你的两个值区别是不是在大小写上面不同,在默认情况下mysql字段内容是不区分大小写的,至于怎么设置,方法很多,你到官方文档上看去。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年02月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档