您现在的位置是:首页 > 新闻 > 正文
我的身体有bug(作为程序员,你有过一个简单bug查询了很久才解决的经历吗)
2022-09-16 17:17新闻
简介 程序员总会遇到一些稀奇古怪的问题,或由于编码错误,或由于对见识浅薄,一些问题解决之后,或者说说透了,就那么简单,但是在解决的过程中,总是会有一些弯路。敲了这么多年...
程序员总会遇到一些稀奇古怪的问题,或由于编码错误,或由于对见识浅薄,一些问题解决之后,或者说说透了,就那么简单,但是在解决的过程中,总是会有一些弯路。敲了这么多年的代码,也陆续发现了一些线上问题,至今对两个 bug 的背景和解决过程仍记忆犹新,我就简单的分享一下,有类似体验的可以多深入了解一下,如果感觉不知所言的,跳过即可,娱乐为主。
第一个要分享的bug,是Java语言通过 HTTP 客户端 RestTemplate 调用弱语言 PHP封装的 HTTP 接口引起的,对方将配置数据,处理成 JSON 提供给我,其数据结构如下:
[{
"operateWord" "测试1",
"url"//www.baidu.com"
}, {
"operateWord" "测试2",
"url"//www.baidu.com"
}]
Java 这边通过对象的列表来接收 java.util.List<Banner>
@Setter
@Getter
public class Banner{
private String operateWord;
private String title;
private String url;
}
自测验证,测试通过后上线,偶尔会出现可用率降低的情况,其异常日志的主要信息如下
java.lang.ClassCastException "测试2",
"title" "https//p1.toutiaoimg.com/large/pgc-image/e5706ce4fc064c68bb7a470ef07e8233" web_uri="pgc-image/e5706ce4fc064c68bb7a470ef07e8233" img_width="500" img_height="308" fold="0" onerror="javascript//xxx" resulted in 400 (Bad Request); invoking error handler
Exception in thread "main" org.springframework.web.client.HttpClientErrorException88)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java//p1.toutiaoimg.com/large/pgc-image/e5ebb088f1c64f9d8fdc421d7e3ce4f5" web_uri="pgc-image/e5ebb088f1c64f9d8fdc421d7e3ce4f5" img_width="512" img_height="294" fold="0" onerror="javascript:errorimg.call(this);" >
这两个bug,都是线上正常运行一段时间后,才出现的,这种往往更恼火,在测试阶段很隐蔽,线上出现之后,也不是很容易排查。编写代码时,还是需要用心去写,尽量避免这些bug呢。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。