Zend Framework插入到DB错误处理中

I am using Zend_Db_Adapter_Abstract for manipulating DB data and when I use its method insert with a DB user that does not have permission for inserting data into DB, I get error with code 500. How can I handle this situation if this method does not throw any exception?

The method looks like this:

public function insert($table, array $bind)
{
    // extract and quote col names from the array keys
    $cols = array();
    $vals = array();
    $i = 0;
    foreach ($bind as $col => $val) {
        $cols[] = $this->quoteIdentifier($col, true);
        if ($val instanceof Zend_Db_Expr) {
            $vals[] = $val->__toString();
            unset($bind[$col]);
        } else {
            if ($this->supportsParameters('positional')) {
                $vals[] = '?';
            } else {
                if ($this->supportsParameters('named')) {
                    unset($bind[$col]);
                    $bind[':col'.$i] = $val;
                    $vals[] = ':col'.$i;
                    $i++;
                } else {
                    /** @see Zend_Db_Adapter_Exception */
                    require_once 'Zend/Db/Adapter/Exception.php';
                    throw new Zend_Db_Adapter_Exception(get_class($this) ." doesn't support positional or named binding");
                }
            }
        }
    }

    // build the statement
    $sql = "INSERT INTO "
         . $this->quoteIdentifier($table, true)
         . ' (' . implode(', ', $cols) . ') '
         . 'VALUES (' . implode(', ', $vals) . ')';

    // execute the statement and return the number of affected rows
    if ($this->supportsParameters('positional')) {
        $bind = array_values($bind);
    }
    $stmt = $this->query($sql, $bind);
    $result = $stmt->rowCount();
    return $result;
}