下列情况时这个函数会被调用 - - 这个后台程序启动时
- 这个后台程序停止时
每种情况时主函数要做的事 - 下面就是我们上面提到的主程序会调用的获取pid的代码。注意我们使用异常捕获和if-else语句来处理这些情况。 方法 1 05 | f = open ( 'daemon.pid' , 'r' ) |
12 | raise "Faild to Read file" |
24 | raise SomeUnKnownError |
方法 2 05 | if os.path.exists( 'daemon.pid' ): |
08 | f = open ( 'file.pid' , 'r' ) |
15 | except (ValueError, IOError): |
方法 3 08 | f = open ( 'daemon.pid' , 'r' ) |
我喜欢方法 3,因为它在大多数情况下都可行。如果极少的情况下出现了错误,主调函数里的异常处理会捕获这种情况。 两种错误处理方式都是我们保证程序无误的重要途径。 何时使用if-else语句 - 当我们知道可能会有什么情况发生时。也许会分很多种情况。(C语言的错误码机制就是一个很好的例子)。
- 我们通常是基于输入值使用if-else来控制执行路径。
何时使用异常处理 - 你想捕获一个异常,或者捕获一些异常但自己不处理,交给系统去处理。支持异常机制的编程语言会在最顶层捕获这些异常,并报告给用户。
6. 忽略上面所有的策略 .有时候事情就是这样!而且这样并不一定是坏事。我们编程时经常这样——当我们开发一个新原型,或针对一个特殊问题找一个解决方案,这时我们如何实现并不重要,重要的是在定型后我们如何完成它们。我想大多时候我们都是这样做的。谁都知道,先打草稿,后动真的。 请在评论里留下你对这些观点的想法。
外刊IT评论:http://www.aqee.net/ |