当前位置: 首页 > news >正文

一段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})");
}

 

转载于:https://www.cnblogs.com/chy1000/p/6879850.html

相关文章:

  • 从零搭建Koa2 Server
  • 设计模式之模板方法模式
  • hibernate 继承映射
  • Introduction | Elasticsearch权威指南(中文版)
  • ionic组件清单
  • 用JS获取地址栏参数的方法(超级简单)
  • nginx源码分析——线程池
  • 禁止选中文本JS
  • 【书签】一个leading, mobile-friendly的交互地图js lib
  • 图片轮播的手写代码
  • 入口文件 bootstrap / app.php
  • 深入Oracle的left join中on和where的区别详解
  • 怎样让百度快速收录的新方法
  • 把两个字段的和作为新的字段
  • vagrant
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • ECS应用管理最佳实践
  • Java编程基础24——递归练习
  • js对象的深浅拷贝
  • Just for fun——迅速写完快速排序
  • laravel with 查询列表限制条数
  • Median of Two Sorted Arrays
  • QQ浏览器x5内核的兼容性问题
  • vue学习系列(二)vue-cli
  • vue自定义指令实现v-tap插件
  • windows下mongoDB的环境配置
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 数据结构java版之冒泡排序及优化
  • 详解NodeJs流之一
  • 移动端唤起键盘时取消position:fixed定位
  • 以太坊客户端Geth命令参数详解
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 交换综合实验一
  • #pragma once与条件编译
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (七)Java对象在Hibernate持久化层的状态
  • (四)linux文件内容查看
  • (译)2019年前端性能优化清单 — 下篇
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)关于多人操作数据的处理策略
  • **python多态
  • .NET 命令行参数包含应用程序路径吗?
  • .net分布式压力测试工具(Beetle.DT)
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET业务框架的构建
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • .ui文件相关
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • [1525]字符统计2 (哈希)SDUT
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured