PEAR::isError

<?php

function get_data() {
    $rs = $db->query($sql, $params);
    if (PEAR::isError($rs)) {
        return $rs;
    }
    
    $data = array();
    while ($row = $rs->fetchRow(MDB2_FETCHMODE_ASSOC)) {
        if (PEAR::isError($row)) {
            return $row;
        }
        $data[] = $row;
    }

    return $data;
}
?>

PHP4 で Java みたいにエラー情報を呼び出し元に伝播しようと思うと、上のようなプログラムになると思うのだが、例外なしでエラーハンドリングしようとするとやたらと面倒だなぁ。