细看PEAR的错误处理,细看PEAR的错误处理
【 tulaoshi.com - PHP 】
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,...);}
来源:http://www.tulaoshi.com/n/20160129/1491270.html