function readConfig( $path ) { if ( $path == null ) throw new Exception( 'bad argument' ); $fh = fopen( $path, 'r' ); if ( $fh == null ) throw new Exception( 'could not open file' ); while( !feof( $fh ) ) { $l = fgets( $fh ); $ec = parseLine( $l ); } fclose( $fh ); } try { readConfig( 'myconfig.txt' ); } catch( Exception $e ) { echo( $e ); } ?> 我无需考虑错误代码问题,因为异常中包含了错误的说明性文字。我也无需考虑如何追踪从 parseLine 返回的错误代码,因为如果出现错误,该函数将只抛出一个错误。堆栈将延伸至最近的 try/catch 块,该块位于脚本的底部。 异常机制将彻底改变编写代码的方法。您不必管理让人头痛的错误代码和映射,可以将精力集中在要处理的错误上。这样的代码更易于阅读、维护,而且我要说,甚至要鼓励您添加错误处理机制,它通常都能带来好处。 结束语 新的面向对象特性和异常处理的增加为将代码从 PHP V4 迁移到 PHP V5 提供了强有力的理由。正如您所见,升级过程并不难。扩展到 PHP V5 的语法感觉就像 PHP 一样。是的,这些语法来自诸如 Ruby 之类的语言,但我认为它们配合得非常好。并且这些语言将 PHP 的范围从一种用于小型站点的脚本语言扩展为可用于完成企业级应用的语言。 |