关于服务器端编程的程序调试心得
2015-11-19 21:19
609 查看
对某些需要在编译以后放到服务器端或者集群运行的程序,在没有调试工具的情况下,解决问题的方法主要是通过输出语句(将info输出到日志中),分为以下步奏:
1、对问题的定位
将程序分为几大逻辑,根据顺序逐个大逻辑进行测试(不要放过任何一部分,不要认为某个部分一定不会出错,往往出错的就是这部分)。然后逐步缩小问题出现的范围,对代码进行修改。
2、发现问题
a、出现问题后编译器一般都会有提示,如果丝毫没有提示,那么也许是从某个逻辑出口跳出了。诸如try,catch语句,break,return语句等等。
b、段错误(segment error),一般原因为数组越界,这就要求我们在编程的时候考虑周到,对map的getvalue以及String的subString时候先检查是否hasKey,以及index == -1 的问题。
3、对问题的解决
对问题的解决与问题的定位相反,可采取由小到大的方式,先将出现问题的地方改过,然后逐步向后扩大,看看是否会影响到后续代码的运行。
4、 不太清楚的函数不要瞎用,以及以前没用过的东西更要提高警惕。要注意try,catch语句的使用问题,try中的语句throw异常以后,进入对应的catch语句进行执行,直接跳过try中throw异常后面的语句,如果最后有finally,那么会执行finally的内容然后顺序执行。
谢谢kailian、zhangli、wangyue、bowen各位师傅的指导。多做总结,共同进步!
1、对问题的定位
将程序分为几大逻辑,根据顺序逐个大逻辑进行测试(不要放过任何一部分,不要认为某个部分一定不会出错,往往出错的就是这部分)。然后逐步缩小问题出现的范围,对代码进行修改。
2、发现问题
a、出现问题后编译器一般都会有提示,如果丝毫没有提示,那么也许是从某个逻辑出口跳出了。诸如try,catch语句,break,return语句等等。
b、段错误(segment error),一般原因为数组越界,这就要求我们在编程的时候考虑周到,对map的getvalue以及String的subString时候先检查是否hasKey,以及index == -1 的问题。
3、对问题的解决
对问题的解决与问题的定位相反,可采取由小到大的方式,先将出现问题的地方改过,然后逐步向后扩大,看看是否会影响到后续代码的运行。
4、 不太清楚的函数不要瞎用,以及以前没用过的东西更要提高警惕。要注意try,catch语句的使用问题,try中的语句throw异常以后,进入对应的catch语句进行执行,直接跳过try中throw异常后面的语句,如果最后有finally,那么会执行finally的内容然后顺序执行。
谢谢kailian、zhangli、wangyue、bowen各位师傅的指导。多做总结,共同进步!
相关文章推荐
- python实现爬虫统计学校BBS男女比例(一)前期准备、方案分析
- <5> go 上下文传递context
- Introducing IPython Notebook
- java中获取用户的输出信息
- 11.C#的集合
- 【C++】非递归遍历二叉树
- java类、抽象类和接口
- java问题1解决方法:repaint()(更新ing)
- php解析视频flash地址
- spring事务配置的五种方式
- C#特性的简单介绍
- python collections中Counter类
- PHP数组,数组排序算法,数组查找算法介绍
- 【C++】二叉树的基本操作
- Java实现哲学家就餐问题
- 什么是pyc文件
- Java 连接数据库及字符编码
- 邻接表-C++
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
- XMPP即时通讯(代码实现)