fetchrow_array在什么情况下报错,我想把报错的信息打出来

执行下列代码后有的时候能把所有信息打出来,有的时候不能,但是也没有报错,connect,prepare,execute(),出现错误都会把错误信息打出来,fetchrow_array在循环读信息,怎么能把他的错误打出来。
if(not $dbh=DBI->connect("DBIconn_dbdconn_dbn",$conn_uid,$conn_pwd,
          {RaiseError => 0,ChopBlanks => 1,PrintError => 0, AutoCommit => 1}))

          $strsql = "select int_id,cellular_type from btssitemanager";
          if(!($sth = $dbh->prepare($strsql)))
          {
                  traceLog "ERR  Can not read nrmdb table btssitemanager.".$DBI::errstr."\n";
                  return;
          }
          $rv = $sth->execute();
          if(!$rv)
          {
                  traceLog "ERR  Can not read nrmdb table btssitemanager.".$DBI::errstr."\n";
                  return;
          }
          while(($ne_id,$cellular_type) = $sth->fetchrow_array)
          {
                 #liuxl 20081119
                  traceLog "     int_id:".$ne_id ."  , cellular_type:".$cellular_type."\n";
                  $HASH_NE_SITE->{$ne_id} = $cellular_type;
          }
          $sth->finish;
          $dbh->disconnect();
          return;
  }