当前位置: 首页 > 图文教程 > 网络编程 > PHP > 细看PEAR的错误处理
PEAR提供了强大的错误处理机制。这篇文章向你展示如何从这个系统中获益。
许多程序已经使用了PEAR的包。许多PHP程序员或多或少的熟悉了PEAR中的错误处理。但是这个机制并不局限于PEAR的包——所有人都能在他们的类和程序中使用这些方法。
这篇文章被分为两个部分:首先我们将看看类中用于错误处理的函数,然后我们将看看如何基于PEAR错误处理机制来处理错误。
我们的例子类称为cvs2db,它把数据从CSV文件插入到数据库的表中。因为数据可能是手写的,他们的数据应该在插入之前先得到验证——落实postcode。函数import()完成读入,检查和插入的工作;它返回损坏的记录数目。如果返回的值大于0,出错的记录集能够使用exportUnvalid()写入到新的CSV文件中。典型的用法是这样的:
<?php$cd = new csv2db();$dsn = 'mysql://root@localhost/csv2db';if( 0 < $cd->import("./dat.csv", $dsn, 'address')) {$cd->exportUnvalid("./dat2.csv");}?><?php$cd = new csv2db();$dsn = 'mysql://root@localhost/csv2db';$result = $cd->import("./dat.csv", $dsn, 'address')switch($result) {case FILE_NOT_OPENED:...break;case DATABASE_ERROR:...break;default:if(0 < $result) {$cd->exportUnvalid("./dat2.csv");} else {echo 'every thing ok!'}}?>// per instance$cd = new csv2db();$cd->setErrorHandling(PEAR_ERROR_DIE):// staticCVS2DB::setErrorHandling(PEAR_ERROR_DIE);PEAR::setErrorHandling(PEAR_ERROR_DIE);
function raiseError(...,$mode=null, $options=null,...) {if($mode==null && $this->_default_error_mode!=null) {$mode = $this->_default_error_mode;$options = $this->_default_error_options;}return PEAR::raiseError(...,$mode, $options,...);}
评论 (0) All