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

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

下面是我之前在开发中曾经遇到过的问题,分享给你们,让你们引觉得戒!前端

  1. 路径名称不区分大小写mysql

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

 

2.    html页面中id重复web

若是你使用jq选中一个id进行操做,突然发现失灵了,怎么操做都不起做用,你就应该检查下你的页面中是否存在重复的id。正则表达式

 

3. 前端数据传到后台时掺杂前端的数据。sql

有时咱们为了使体验更好,都习惯在输入框里面使用placehoder,却不知,在IE8下,placehoder里面的值会直接传到后台,这时就应该加上判断,再好比js一直报错‘缺乏右括号’,检查一下你的代码是否是有空格,浏览器默认结束了,要注意加上\" \"字符防止浏览器认为你的字符结束。还有若是你的前端代码写的不标准,由于浏览器解析的缘由,极可能把一些/等等前端符号传到后端,最后形成一些莫名其妙的错误。数据库

 

4. 使用数学中的逻辑运算符编程

          if(2<a<7){………}乍看起来没有问题,我这样用都用了几十年了,思惟定势啊,找了半天,恍然大悟,计算机中比较运算符是不能这样使用的 。后端

 

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字段值得内容是不区分大小写的,至于怎么设置方法不少,你到官方文档上看去。

 

若有问题请扫码回复

相关文章
相关标签/搜索