- 论坛徽章:
- 0
|
我还等着阁下 解释一下 著名的开源程序100行以内,高手所写代码, 在几年甚至几十年后
仍然爆出bug的问题呢?100行以内,还写出bug, 看来阁下认为他们的水平不砸的押!
既然阁下认为您的函数都没问题,还用try catch 来干什么呢?
后面的流程 会按照出错的方法来解决, 就像你的try catch 捕捉到一样。
//不好意思,您处理不了。爆了,说明是严重bug,后面catch到可以防止带病运行;不爆,必定要带病运行。正是这个带病运行会格用户的硬
盘。
//请不要再在这个问题上掺杂不清。说车轱辘话的人很讨厌。
// 既然阁下武断的认为,被catch 到以后的,就一定要断掉它。 至于带病运行会格掉客户影片这种
想法也已经根深蒂固。 还有什么好说? 一副“ 顺我者昌,逆我者亡”的架势。我想问问,那么象windows这种 bug横生,linux 也是补丁不
断的系统,您是不是该把它们打下1000层地狱? 他们的bug可不是try catch 就能解决的?
你有没有试过,遇到错误,但是异常没有跑出来的情况呢?就像strncpy( 的dest * 为NULL. 它执行了,它没有崩溃, 它也没有异常,但是它
错误了。 如果你使用过 录音卡 如 ipm 这类板块,你就会知道。 它的系统运行在独立的板块上, 它未必每次工作都是稳定的。都能把异常
抛出来。
//这是特殊平台的特殊问题,请别拿到普遍问题讨论里来搅和。这并不能显示您的水平。
//真想玩的话,CU首页有个brian fuck机,在那上面写程序更好玩。
普遍的?这就是天天开发面对的问题。对于您 您是遇不上的,如果要面对20-30种板卡,帮他们不断的擦屁股,你就知道遇不遇得到了。
不用了, 第二个版本 的崩溃 你们就已经被使用商退回来了。你们已经out!
//不好意思,即使catch没有起到作用,我们仍然没有让用户损失数据;倒是格了用户硬盘的你们,还正忙着打官司,正在公证人的监视下,让
数据恢复公司提取硬盘数据取证呢。
//同时,由于被用户控告在代码中嵌入病毒,公司正雇人调查您们项目组的全体工作人员,看谁平常牢骚最多呢
阁下又认为 我们会格式化掉用户的硬盘了,嗯的确有可能的。 不过操作系统 ,普通程序任何一个程序的任何一个bug都可能会有这样的后果
,那您为什么还这么放心的使用硬盘啊? 说不定在捕捉异常以前已经格式化掉了硬盘了。
错误了
某些信息莫名其妙丢失却总也找不到原因的。 那只是你的代码水平问题。 要知道 不是每个工程师都对错误视而不见。
//很不幸,把非法的空指针参数转换成莫名其妙的arg_error的strcpy函数,正是阁下力挺的杰作;反倒是在下一直在讨伐这种代码
把非法的空指针参数转换成莫名其妙的arg_error
我们还有个错误结果返回呢?如果您不看返回结果。再有强大的异常捕捉又有什么用? 红灯亮了, 继续向前走就可以了。
站在设计师的角度看问题,一个个的函数、模块就是这样一台台随时可能出问题的机器。
关键就在于: 只有正常工作的机器,它们的报告才是可信的;出了问题的机器必须确认问题原因不会影响它的可信度,才能决定它是否应被屏蔽掉。
机器已经告诉您它不可信了,您还固执的认为,靠try catch 拿来的报告我相信的。 返回值回来的,我不相信,我不会屏蔽你。我让您继续运行,然后落下话柄 去被人攻击。
那么,断言是做什么的?
它的作用是: 在测试期就找到并剔除这样的机器。
如果此时没找到,就只能寄希望于异常了。
第一我没有认为不应该使用断言。
第二 我认为4个答案里面3比1好
第三 3的开始 可以加上断言。
第四 加上断言 不能取代内部的判断。
总结一下, 阁下认为我们的代码有一丁点问题,客户的硬盘就没了。函数的错误,我们从来不处理,让後让整个系统布满逻辑错误。
100行以内的代码就是安全的了. 只相信异常,不相信返回值。 |
|