错误处理
已收录文章:41篇
-
文章 · php教程 | 1个月前 | 错误处理 · 调试 · php教程 · PHP 8.5 · 错误处理 set_error_handler PHP 8.5 get_error_handler restore_error_handlerPHP 8.5 新增 get_error_handler(),可以直接读取当前用户错误处理器。文章用请求级日志采集场景拆解返回值、临时替换、restore_error_handler() 恢复和 PHP 8.4 兼容边界。284 收藏
-
文章 · php教程 | 1个月前 | JSON · 错误处理 · PHP · PHP升级 json_decode PHP 8.3 json_validate JSON校验 JSON_THROW_ON_ERRORPHP 8.3 新增的 json_validate() 适合只判断 JSON 是否有效、并不需要马上读取内容的场景。本文用 webhook 入站校验拆开内存边界、json_last_error_msg、深度参数、UTF-8 与旧版本兼容实现。221 收藏
-
文章 · php教程 | 1个月前 | WEB开发 · 错误处理 · PHP · PHP 8.5 · 异常排查 · set_error_handler PHP 8.5 get_error_handler restore_error_handler 错误处理器PHP 8.5 新增 get_error_handler(),可以读取当前注册的错误处理器,适合排查框架中间件、临时兜底和恢复顺序问题。本文用一条被吞掉的警告为例,说明它与 set_error_handler()、restore_error_handler() 的配合方式及边界。292 收藏
-
Golang · Go问答 | 2个月前 | 错误处理 · go · 性能 · bytes.Buffer · Go 1.26 · io.EOF 版本迁移 Go 1.26 bytes.Buffer.Peek 缓冲区预览Go 1.26 为 bytes.Buffer 增加 Peek 方法,可以在不推进读取位置的前提下预览前 N 个字节。本文对比 Next 和 Peek 的行为,说明 io.EOF、切片有效期、旧工具链兼容与测试边界。428 收藏
-
Golang · Go问答 | 2个月前 | golang · 错误处理 · 泛型 · Go问答 · Go 1.26 · errors.As Go问答 Go 1.26 errors.AsType 泛型错误处理Go 1.26 为 errors 包增加了泛型函数 AsType,让调用方可以直接拿到指定错误类型,减少 errors.As 的目标变量和类型断言。本文从订单校验错误的实际场景出发,对比新旧写法、兼容边界和测试验收方式。255 收藏
-
context.Err 只能告诉调用方请求已取消或超时,context.Cause 才能保留触发取消的具体原因。本文用一个可运行的 Go 示例说明 WithCancelCause、Cause 和 Err 的关系,以及父子 context 竞争取消时的边界。428 收藏
-
Go database/sql 查询循环结束并不等于读取完整成功,本文从连接中断、Rows.Close 和事务提交三个现场拆开 Rows.Err 的检查边界,并给出可复现的代码与验收方法。102 收藏
-
Go 的 sync 一次性初始化器适合把稳定结果封装成函数,但初始化失败也会被缓存。本文用配置加载和重试边界说明一次性函数、OnceFunc 与可重试初始化该怎么选。379 收藏
-
当一个 HTTP 请求体里连续放着多个 JSON 值时,json.Unmarshal 只能处理单个完整值。本文用 json.Decoder 循环读取连续 JSON,区分正常 EOF、语法错误和尾部脏数据,并给出请求体大小限制、空白字符和资源关闭的检查方法。458 收藏
-
并发处理一批任务时只返回第一个错误,往往会掩盖其他失败项。本文用 Go errors.Join 组合多个错误,比较首错、聚合错误和带任务标识的结果汇总,给出可验证的选择边界。278 收藏
-
Golang · Go问答 | 2个月前 | 错误处理 · go · SQL · database/sql · 线上排查 · SCAN 查询结果 database/sql Go问答 rows.Next Rows.ErrGo 读取数据库结果时,rows.Next 返回 false 只能说明当前结果集没有下一行,不能直接当成查询成功。需要在循环后检查 rows.Err,并分别处理 QueryContext、Scan、Close 的错误,才能区分正常查完、数据库中断和结果读取失败。292 收藏
-
Golang · Go问答 | 2个月前 | 超时 · 错误处理 · go · Context · errors.Is Go context deadline exceeded WithCancelCauseGo 服务里看到 context deadline exceeded,不代表所有请求都只是超时。本文从上游主动取消、下游调用超时和本地截止时间三种现场出发,演示 WithCancelCause、Cause 与 errors.Is 的判断顺序,让日志能指出真正的中断来源。309 收藏