MySQL获取错误编号 try判断 获取 Exception 上的错误

本文介绍在ThinkPHP框架中如何捕获并处理MySQL产生的异常信息,包括错误代码和消息,通过自定义函数实现异常的详细解析。

 

 

简单写个TP上获取 Exception  上的获取mysql错误信息跟code

 

try{
    $CdkeyModel = User::create($insertData); //将会报错的代码
}catch(Exception  $e){

    $array = Exception_error($e->getData(),"mysql_error");//
    $array['code'] == 1062 and die("循环创建发生重复");
}
//获取Exception错误信息       function Exception_error($data,$name){ foreach ($data as $key=>$value){ switch ($name){ case "mysql_error": if($key == "PDO Error Info"){ $array['code'] = $value['Driver Error Code']; $array['message'] = $value['Driver Error Message']; return $array; } break; } } }

 

转载于:https://www.cnblogs.com/TuWenHao/p/11430444.html

<think>### 如何获取错误获取错误码的方法取决于具体场景和技术栈。以下是常见情况的解决方案: --- #### 1. **HTTP 请求错误码** - **浏览器开发者工具**: 在 Chrome/Firefox 中按 F12,打开 **Network** 标签页,查看请求的 **Status** 列。 - **cURL 命令**: ```bash curl -I https://example.com # 仅显示响应头(含状态码) ``` - **Python 示例**: ```python import requests response = requests.get("https://example.com") print(response.status_code) # 输出 HTTP 状态码 ``` #### 2. **系统/进程退出码**(Linux/Windows) - **命令行**: ```bash echo $? # Linux/Mac 显示上一条命令的退出码 echo %errorlevel% # Windows CMD ``` - **Python 获取子进程退出码**: ```python import subprocess result = subprocess.run(["ls", "/nonexistent"], capture_output=True) print(result.returncode) # 输出非零错误码(如 2) ``` #### 3. **数据库错误码** - **SQL 异常捕获**(以 MySQL 为例): ```python import mysql.connector try: conn = mysql.connector.connect(user='root', password='', host='127.0.0.1') except mysql.connector.Error as err: print(f"错误码: {err.errno}") # 输出数据库错误码 ``` #### 4. **编程语言异常** - **Java**: 在 `catch` 块中调用 `e.getErrorCode()`(JDBC 等)。 - **JavaScript**: 捕获异常后访问 `error.code`(如 Node.js 文件系统错误)。 --- ### 关键点 - **协议规范**:HTTP、gRPC 等协议的错误码通常在响应头中明确返回。 - **日志分析**:服务端错误码需查看应用日志(如 Nginx 的 `error.log`)。 - **工具集成**:APM 工具(如 Sentry, Datadog)可自动捕获并上报错误码。 §§相关问题§§ 1. HTTP状态码500和503在服务端错误处理中有何本质区别? 2. 如何通过Linux系统日志追踪内核级别的错误码(如OOM)? 3. 在微服务架构中如何统一收集跨服务的错误码? 4. 数据库事务失败时,如何区分业务错误码与系统错误码? 5. 使用cURL时,哪些参数能更详细地显示HTTP错误信息? </think> ### 如何获取错误获取错误码的方法因场景不同而异,以下是主要途径: 1. **HTTP 请求错误码** - **浏览器开发者工具**:按 F12 → 网络(Network)标签 → 查看请求的"状态"列 - **cURL 命令**:添加 `-I` 参数显示响应头(如 `curl -I https://example.com`) - **Python**: ```python import requests r = requests.get('https://example.com') print(r.status_code) # 直接获取状态码 ``` 2. **系统命令错误码** - **Linux/Unix**: ```bash some_command echo $? # 显示上条命令的退出码(0表示成功) ``` - **Windows CMD**: ```bat some_command echo %errorlevel% ``` 3. **编程语言异常处理** - **Python**: ```python try: # 可能出错的代码 except Exception as e: print(e.args[0]) # 获取错误编号 # 或使用特定库的错误码属性(如 requests 的 r.status_code) ``` - **Java**:通过 `try-catch` 捕获异常后调用 `getErrorCode()` 方法 4. **服务器日志分析** - 查看服务端日志文件(如 Nginx 的 error.log) - 使用系统日志工具: ```bash journalctl -u nginx --since "5 min ago" # 查看最近日志 grep "500" /var/log/nginx/error.log # 过滤错误码 ``` 5. **API 响应解析** 解析 JSON/XML 响应体中的错误字段(如 `{"code": 500, "message": "..."}`) --- ### 关键原则 - **协议规范**:HTTP 错误码在响应头首行 - **层级传递**:系统错误通过退出码传递,应用错误通过返回值/异常传递 - **工具辅助**:Postman 等工具自动解析状态码,云监控平台可报警
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值