当前位置: 首页 > 编程日记 > 正文

记一次生产的bug

第一个在代码中使用 new SimpleDateFormat("EEEE")来判断周几。在本地测试过程中通过日志打印出来的周几 比如周日对应的是中文汉字“星期日”,然后使用判断 if("星期日".equals(weekDay)){   } (其中weekDay是要使用的日期)。在本地测试通过后就愉快的上线了。

这是一个发邮件的功能,我把生产上发邮件的时间定在了周六上午10点。到了周六,我就正好去了外地玩,也没有带笔记本。周六上午我就在玩的地方等邮件发出,等着见证奇迹的时刻。终于10点到了,为什么没发出来,难道是生产上数据太多,好吧,再等一会儿。10:30了,为什么还没发出来,我意识到是代码出问题了(心中一万匹****)。于是找同事帮忙看日志,但是日志中并没有显示异常,找不出来原因,心中万分焦虑。

终于在周日晚上返回家里,打开电脑,连上VPN,在代码中打日志,上线测试日志打印情况,最后发现到某个地方之后的日志打印不了了。我看下源代码,这附近我写了一直 if(){}else if() {} else {return;}。那问题很可能就在return这里了,我又把要比较的日期weekDay打印出来,生产上显示的竟然是“Sunday”,一口老血喷出。问题终于找到,原来每次到了else这里它都默默地返回了,怪不得我在日志里什么也看不出来。

这次经历暴露了我写代码的一个很大毛病,记录下来,前事不忘后事之师。

1、在写代码的过程中,不要把问题隐藏起来,不要直接return,catch到了错误也不要直接return或者在catch里什么都不做,要么打日志,要么发短信,要么把问题抛给上层处理,根据需要把选择相应的方式。一定不要把代码中的问题隐藏到代码中,显示出来,崩溃都可以。

2、在代码上线前,无论多么少的代码,一定要按照正规的流程放到测试环境测试,即使本地和测试环境都通过了,在生产上也可能因为机器或者数据量的不同而导致问题,一定要进行充分的测试,那些bug永远在你见识过的之外,不通过充分的测试是暴露不出来的。

转载于:https://www.cnblogs.com/coderjie/p/7472365.html

相关文章:

企业ERP制度的“执行力”

一直都很想说这个话题。可能很多人不是太理解这个标题,企业ERP制度是指完成了ERP系统实施的企业,为了维持ERP系统的持续运行而建立的ERP运行制度。执行力就不用多说了,就是ERP运行制度到底执行了多少,怎么执行的问题。许多管理软件…

python学习点滴记录-Day10-线程

多线程 协程 io模型 并发编程需要掌握的点: 1 生产者消费者模型2 进程池线程池3 回调函数4 GIL全局解释器锁 线程 理论部分 (摘自egon老师博客) 一、定义: 在传统操作系统中,每个进程有一个地址空间,而且默…

适配设备的简易新闻浏览器

同时兼容手机和平板。 进入应用后先显示新闻列表,当在手机上使用时,使用单页模式,单击列表项会打开新的页面。 当在平板上使用时,使用双页模式,单击左侧列表项时直接更新右侧新闻内容页。 MainActivity.java pack…

this.$router.push、replace、go的区别

1.this.$router.push() 描述:跳转到不同的url,但这个方法会向history栈添加一个记录,点击后退会返回到上一个页面。 用法: 2.this.$router.replace() 描述:同样是跳转到指定的url,但是这个方法不会向histor…

jQuery 实现图片的特效1[原]

用jQuery实现图片的动画效果非常简单.以下演示 jQuery里面所用到的参数 HIDE SHOW FADEOUT FADEIN 的不同. 在线演示:单击演示 代码分析: //hide and show fadeout and fadein $("input:eq(0)").click(function(){ $("img").fadeOut(3000); }); …

【设计模式】 模式PK:策略模式VS状态模式

1、概述 行为类设计模式中,状态模式和策略模式是亲兄弟,两者非常相似,我们先看看两者的通用类图,把两者放在一起比较一下。 策略模式(左)和状态模式(右)的通用类图。 两个类图非常相…

vs2008与IIS 7.0使用在vista上时出现的问题及解决方法(Internet Explorer 无法显示该页面)(VS2008: IE Cannot Display Web Page)...

我的系统是Vista Ultimate SP1,先安装了vs2008 ,然后再安装了IIS7.0之后就出现了一系列的问题。 问题:通过vs2008启动程序调试时报错。错误提示为:Internet Explorer 无法显示该页面 解决方法: 首先是安装一些必要的附件程序。 1.打开控制面板…

云服务中IaaS、PaaS、SaaS的区别

越来越多的软件,开始采用云服务。 云服务只是一个统称,可以分成三大类。 IaaS:基础设施服务,Infrastructure-as-a-servicePaaS:平台服务,Platform-as-a-serviceSaaS:软件服务,Softwa…

Android项目框架综合实例

综合使用ViewPager、Fragment、RecycleView等,实现类似“网易新闻浏览器 ”的项目综合框架,要求实现: 底部导航,分别是“首页”,“视频”,“讲讲”,“我的”;底部导航不要求滑动翻页…

配置Windows Server 2003 的RADIUS Server的方法

配置Windows Server 2003 的RADIUS Server的方法1、安装Windows 2003操作系统;2、添加角色(须插网线);3、添加组件->网络服务、证书服务;4、管理工具->域安全策略->帐户策略->密码策略;&#x…

Y15BeTa蜂鸣器唱歌程序-演奏版

最优版&#xff0c;自由演奏你的音乐&#xff01; 每天进步一点点&#xff01; 2018-12-09最新版 #include<bits/stdc.h> #include<windows.h> using namespace std; int md[8]{0,262,294,330,349,392,440,494}, mz[8]{0,523,587,659,698,784,880,988}, mg[8]{0,10…

实验6 触发器的使用

实验6 触发器的使用 实验目的 掌握触发器的创建、修改和删除操作。 掌握触发器的触发执行。 掌握触发器与约束的不同。二、实验要求 1.创建触发器。 2.触发器执行触发器。 3.验证约束与触发器的不同作用期。 4.删除新创建的触发器。 三、实验内容 &#xff08;一&#x…

神经网络二(Neural Network)

#!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ __author__ wlc __mtime__ 2017/9/04 """ import numpy as np import randomclass Network(object):def __init__(self,sizes):#size神经元个数list[3,2,4]self.num_layers l…

要想成功 需要了解的东西

凭我工作的经历来看 在it界要想成功必须要做到以下几点。 1 基本的开发语言不一定精通&#xff0c;但是一定要熟练的使用。 2 对公的主营业务一定要熟悉&#xff0c;不但要熟悉&#xff0c;而且要烂熟于心。如果不能做到这一点&#xff0c;那么起码对自己负责的工作要做到烂熟…

合并下载的Solaris镜像为DVD文件的方法

有很多朋友想安装solaris10操作系统&#xff0c;但是没有系统盘或者在官方网站下载之后不会合成。经过多次试验之后现在把正确的方法写下&#xff0c;以方便大家的学习之用。1。先到官方网站下载最新的系统包&#xff0c;下载之后的软件包为&#xff1a;sol-10-u4-ga-x86-dvd-i…

oracle测试环境表空间清理

测试场景下&#xff0c;使用的oralce遇到表空间的占用超大&#xff0c;可以采用如下的方式进行空间的清理 首先使用sqlplus连接数据库sqlplus sys/passwordorcl as sysdba 之类进行数据库的连接没然后进行如下的操作 ##创建表空间对于自己的测试库和表等最好都建立自己的表空间…

Google Chrome(谷歌浏览器) 发布下载

Google Chrome 下载地址&#xff1a;http://www.google.com/chrome 刚刚装上&#xff0c;还没怎么用&#xff0c;说一下大概印象&#xff0c;整体非常简洁&#xff0c;只有两个菜单选项。访问上明显感觉很快&#xff0c;比 Firefox 快&#xff0c;也比 IE7快&#xff1b;对网页…

实验 5   数据的完整性管理

实验 5 数据的完整性管理 一、实验目的 掌握实体完整性的实现方法。掌握用户定义完整性的实现方法。掌握参照完整性的方法。二、实验内容 数据库的完整性设置。三、实验步骤 可视化界面的操作方法&#xff1a;实体完整性 将 student 表的“sno”字段设为主键&#xff1a;在表…

16-acrobat por 简单使用指南

用于pdf编辑&#xff0c;这里我主要讲下图片的切割和保存&#xff0c;以及合并&#xff1a; 切割选中区域双击 合并的话&#xff0c;在编辑界面选中对象&#xff0c;复制&#xff0c;在另一个pdf的编辑界面粘贴&#xff0c;并挪动位置&#xff1a; 转载于:https://www.cnblogs.…

可突破任意ARP防火墙,以限制流量为目标的简单网络管理软件

以下消息来自幻影论坛[Ph4nt0m]邮件组软件说明&#xff1a;可突破任意ARP防火墙&#xff0c;以限制流量为目标的简单网络管理软件。使用方法&#xff1a;1.在参数设置中选择好工作网卡&#xff1b;2.检查网关信息和本机信息是否正确&#xff0c;如果不正确&#xff0c;请手动输…

OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法...

函数中的代码是部分代码&#xff0c;详细代码在最后 1 cv2.boundingRect 作用&#xff1a;矩形边框&#xff08;boundingRect&#xff09;&#xff0c;用于计算图像一系列点的外部矩形边界。 cv2.boundingRect(array) -> retval 参数&#xff1a; array - 灰度图像&#xff…

实验1 应用SQL Server进行数据定义和管理

实验1 应用SQL Server进行数据定义和管理 【实验目的】 1&#xff09;熟悉SQL Server的配置和管理。 2&#xff09;掌握数据库的定义和修改方法。 3&#xff09;掌握表的定义和修改方法。 4&#xff09;掌握使用SQL语句进行数据管理的方法。 【实验环境】 SQL Server 20…

谷歌Chrome浏览器发布

谷歌已提前启用了浏览器Google Chrome的官方网站gears.google.com/chrome/&#xff0c;今天该浏览器的Windows版本首发。在此以前&#xff0c;谷歌与微软之间的斗争更象是“冷战”&#xff0c;大多局限于谷歌开发小型的、基于网络的软件&#xff0c;与微软占主导地位的Word、Po…

【bzoj1853】[Scoi2010]幸运数字 容斥原理+搜索

题目描述 在中国&#xff0c;很多人都把6和8视为是幸运数字&#xff01;lxhgww也这样认为&#xff0c;于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码&#xff0c;比如68&#xff0c;666&#xff0c;888都是“幸运号码”&#xff01;但是这种“幸运号码”…

Creating a LINQ Enabled ASP.NET Web application template using C#.[转]

原文地址&#xff1a;http://www.wwwcoder.com/Weblogs/tabid/283/EntryID/839/Default.aspx其他相关地址&#xff1a;Building and using a LINQ for SQL Class Library with ASP.NET 2.0 1. Install Visual Studio 2005 RTM. 2. Download and install "…

深入理解Java线程池:ThreadPoolExecutor

线程池介绍 在web开发中&#xff0c;服务器需要接受并处理请求&#xff0c;所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便&#xff0c;但是存在一个问题&#xff1a; 如果并发的请求数量非常多&#xff0c;但每个线程执行的时间…

[zt]petshop4.0 详解之八(PetShop表示层设计)

代码中&#xff0c;InsertUser()方法就是负责用户的创建&#xff0c;而在之前则需要判断创建的用户是否已经存在。InsertUser()方法的定义如下&#xff1a; privatestaticboolInsertUser(OracleTransaction transaction, intuserId, stringemail, stringpassword, intpassForma…

Install Java 8 Ubuntu

sudo add-apt-repository ppa:webupd8team/javasudo apt-get -y update sudo apt-get -y install oracle-java8-installer sudo vim /etc/environment Add this at the end of the file JAVA_HOME"/usr/lib/jvm/java-8-oracle" source /etc/environment转载于:https:…

实验2  使用T-SQL编写程序

实验2 使用T-SQL编写程序 【实验目的】 &#xff11;&#xff09;掌握常用函数的使用方法。 &#xff12;&#xff09;掌握流程控制语句的使用方法。 【实验环境】 SQL Server 2012 Express&#xff08;或SQL Server 2017 Express&#xff09; 【实验重点及难点】 1&…

超酷flash光芒光线特效

http://thefwa.com/ 一个不错的英文设计展示站点 超酷flash光芒光线特效 http://www.zcool.com.cn/flash/light/page_1.html