php异常处理笔记
<?php header("Content-type:text/html;charset=utf-8"); // try // { // //业务处理 错误时抛出异常。 // $age = 130; // if ($age > 120) { // throw new Exception('年龄不能大于120岁。', 1001); // } // } catch (Exception $e) { // $err = [ // 'code' => $e->getCode(), // 'msg' => $e->getMessage(), // 'file' => $e->getFile(), // 'line' => $e->getLine() // ]; // echo json_encode($err,JSON_UNESCAPED_UNICODE); // } /** * 自定义异常处理 */ // class myException extends Exception // { // //根据业务需求,自定义方法 // /** // * 获取错误信息 // * @param int $type 类型 1=json 2=数组 // * @return array // */ // public function getErrorInfo($type=1) // { // $err = [ // 'code'=>$this->getCode(), // 'msg'=>$this->getMessage(), // 'file'=>$this->getFile(), // 'line'=>$this->getLine() // ]; // if($type==1){ // return json_encode($err,JSON_UNESCAPED_UNICODE); // exit(); // } // return $err;exit(); // } // } // try{ // $age = '130'; // if($age>120){ // throw new myException("年龄不能大于120岁。", 1001); // } // }catch(myException $e){ // $info = $e->getErrorInfo(1); // var_dump($info); // }catch(Exception $e){ // var_dump($e->getMessage); // } //禁止错误输出 error_reporting(0); //设置错误处理器 set_error_handler('errorHandler'); //在脚本结束时运行的函数 register_shutdown_function('fatalErrorHandler'); /** * 错误处理 * @param int $err_no 错误代码 * @param string $err_msg 错误信息 * @param string $err_file 错误文件 * @param int $err_line 错误行号 * @return string */ function errorHandler($err_no = 0, $err_msg = '', $err_file = '', $err_line = 0) { // $log = [ // '['.date('Y-m-d h-i-s').']', // '|', // $err_no, // '|', // $err_msg, // '|', // $err_file, // '|', // $err_line // ]; var_dump($err_msg.' in '.$err_line); //echo implode(' ',$log)."<br>"; } /** * 捕捉致命错误 * @return string */ function fatalErrorHandler() { $e = error_get_last(); switch ($e['type']) { case 1: errorHandler($e['type'], $e['message'], $e['file'], $e['line']); break; } } class DemoClass_1 { public function index() { //这里发生一个警告错误,出发errorHandler $ee=['1'=>2]; echo $ee; } } $demo_1 = new DemoClass_1(); //这里发生一个警告错误,被errorHandler 捕获 $demo_1->index(); //发生致命错误,脚本停止运行触发 fatalErrorHandler // $demo_2 = new DemoClass_2(); // $demo_2->index();
keep my first heart
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构