程序try-catch的绝对健壮性之嵌套】的更多相关文章

写程序的过程中,我们对try-catch在熟悉不过了,捕获异常进行处理,以保证程序的健壮性. 今日突发一想,如果我们catch中的代码异常了怎么办?我们做以下一种假设 static void Main(string[] args) { try{ //Code A } catch{ //Code B } finally{ //Code C } } 按照我们平时经常用的,我们在Code A的位置执行出错之后,我们最后可能在Code B进行错误处理,然后可能在Code C处写错误日志. 那么问题来了,…
所谓的程序健壮性是指处理异常的能力,在异常中能够独立处理异常,并且把正确的答案输出. 例如: 有一个程序能够下载一个文件到指定的路径,但是这个路径是不存在的,因此程序必须要处理这个情况. 例1:下面的代码就没有很好的考虑到异常情况,如果service层出现某个异常,则返回给前端的值就为null 例2:下面的代码没有考虑到returnresult为null时,catch里面这样调用会出现空指向异常,而且还没有考虑到try里面的值为null的情况,返回给前端的值也为null , 完整的代码示例:…
在项目开发中,和服务端交互数据时,若服务端数据为空时,会出现 <null>,客户端解析时会 Crash,为了增强程序的健壮性,减少 Crash 的发生,可以使用 NullSafe 这个类别.它对不识别的类型返回 nil,而不是抛出异常,它减少了例如因为 JSON 解析中 数组或字符串为 null 时导致的 Crash.这些异常对客户端来说是不可预期的. 使用时只需要把 NullSafe.m 文件拖进工程就可以了,它在程序运行时自动加载,你不需要再导入其他头文件了. 如果想要禁止 NullSaf…
这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析有缺陷的xml文件 3.regex    更强大的正则表达式引擎 1.cchardet cchardet模块用于检测文本的编码. 安装后,如果服务器不发送网页.xml的编码(这种情况很罕见),InfoPi会调用cchardet检测编码. Linux安装命令: sudo pip3.4 install…
strcpy   函数的原型是: char * strcpy(char * strDest,const char * strSrc);    功能:把从strSrc地址开始且含有NULL结束符的字符串复制到以strDest开始的地址空间,返回指向strDest的指针. 说明:strSrc和strDest所指内存区域不可以重叠且strDest必须有足够的空间来容纳strSrc的字符串. 与strncpy   函数进行对比: strncpy  函数的原型是: char * strncpy( char…
使用 const  提高函数的健壮性 看到 const 关键字,C++程序员首先想到的可能是 const 常量.这可不是良好的条件 反射.如果只知道用 const 定义常量,那么相当于把火药仅用于制作鞭炮.const 更大的 魅力是它可以修饰函数的参数.返回值,甚至函数的定义体. const 是 constant 的缩写, “恒定不变”的意思.被 const 修饰的东西都受到强制保护, 可以预防意外的变动,能提高程序的健壮性.所以很多 C++程序设计书籍建议:“Use const wheneve…
如何评论一个开发代码写的好?清晰简洁明了?No,No,一个处女座就可以写出来了,整齐地代码,详细的注释不是代码好的标准,应该说不是最重要的标准.代码写的是否健壮才是检验的重要标准. 代码的健壮性: 当我们测试向开发提出一个bug,问怎么会出现这样一个bug,他们可能会说代码写的不健壮.何为健壮性,健康强壮,抵挡得住测试各种异常场景的测试才为健壮.而真正的大牛追求的就是以较少的代码量来完成逻辑开发,还能保持代码的健壮性.而这样的代码很少见,一般的程序员见到还不一定能看懂. Python函数的健壮性…
搭建环境这章节没做详细说明,因为我是前期做APP自动化是已经将 SDK 以及JDK给安装配置好了,这次是直接上来演示monkey的功能点以及运用 一.什么是稳定性测试? 通过随机点击屏幕一段时间,看看app会不会奔溃,能不能维持正常运行 二.Monkey是什么? Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动Trackball.按键等操作来对设备上的程序进行测试,检测程序多久的时间会发生异常.和MonkeyRunner几乎是完全不同的,Mon…
问题定义 app发布后经常容易出现各种诡异的crash, 这些crash固然可以通过各种崩溃分析服务去定位. 但是的确很影响用户体验. 在crash分类中有一类是后端接口引发的. 比如常见的引发app crash的原因 接口自身变更, 接口失效或者超时, 比如用户进地铁 接口格式变更. 字段缺失 接口内容变更, int string格式搞错了. 某些字段原本是有值后来就变成了null 一旦出了问题, 后端背锅或者做兼容是常见的方案. 但是对于app自身来说,也需要加强健壮性测试. 健壮性的英文名…
最近出了2个类似问题,此处写下,以作为警醒 问题1: 背景:电商类网站,为了增加用户回流,增加用户购买力度,做了一个和用户等级相关活动 需求:用户等级为g0 -g5,现在有一批代金券有等级领取限制.用户等级和代金券等级相同时,用户可领取到这张代金券:否则代金券显示"等级不符不可领取". 于是我设计用例时这样的: 代金券领取等级: 代金券1(领取等级0),g1(领取等级1) 用户等级:user1(用户等级go) , user2(用户等级g1) 即可以实现以下场景: user1 -->…