一段PHP异常

这是我写的一段代码,里面通过PHP异常功能,实现报错时显示出错代码所在行。当使用者操作出错时,截图给我,我可以很快得去追踪和排查错误!

public function added_business_submit(){
    try{
        extract($_POST);
        if(''==$title)          self::json(0,sprintf(ERROR_EMPTY,'工单标题'));
        if(''==$is_trusteeship) self::json(0,sprintf(ERROR_EMPTY,'服务器类别'));
        if(''==$eqroom_id)      self::json(0,sprintf(ERROR_EMPTY,'所在机房'));
        
        M()->startTrans();
        $com_info     = M('company')->where(array('com_qyuserid'=>$com_qyuserid))->find();
        $com_id       = $com_info['com_id'];
        $com_name     = $com_info['com_name'];    
        if(empty($com_info)) throw new Exception(ERROR_NOTFOUND_USER);
        
        $data = array(
            'com_id'       => $com_id,
            'com_name'     => $com_name,
            'type'         => 1,
            'step'         => 1,
            'poster'       => self::$user['name'],
            'posttime'     => self::$datetime,
            'eqroom_name'  => D('EquipRoom')->get_eqroom_name($eqroom_id),
        );
        $data = array_merge($data,$_POST);
        $agent_id = M('working_agent')->add($data);
        if(false===$agent_id) throw new Exception(ERROR_SUBMIT);
        
        $result = D('StepLogAgent')->next_step($agent_id,$remark);
        if(false===$result) throw new Exception(ERROR_SUBMIT);
    }catch(Exception $e){
        M()->rollback();
        $this->exception_handle($e);
    }

    M()->commit();
    self::json(1,SUCCESS_SUBMIT);
}

private function exception_handle(Exception $e){
    $msg  = $e->getMessage();
    $line = $e->getLine();
    //**/print_r($e); echo M()->getLastSql();
    $name = self::$user['name'];
    $time = self::$datetime;
    $sql  = M()->getLastSql();
    $log  = $time." ".$name.":{$msg}({$line}) {$sql}";
    self::mylog($log,'Agent');
    self::json(0,"{$msg}({$line})");
}

 

posted @ 2017-05-19 18:29  chy1000  阅读(128)  评论(0编辑  收藏  举报