-
Python logging 中可以用 logger.exception 在异常处理器里保留完整 traceback;如果同一条日志重复出现,优先检查重复调用、父子 logger 的 propagate,以及同一层级是否挂了多个 handler。本文给出集中配置和排查模板。
-
Python zipfile 默认支持 ZIP64 扩展,但 allowZip64 与 force_zip64 解决的是不同问题。本文分别说明已知大小文件和未知大小流式数据的写法,并解释 LargeZipFile 的触发边界与兼容注意。
-
Python argparse 可用 parents 复用子命令参数定义,但选项位置和默认值仍需明确。通过公共解析器示例,说明帮助冲突、同名字段覆盖、兼容回退与排查要点。
-
用 Python tomllib 读取 TOML 日期配置时,裸日期会得到 datetime.date,引号日期仍是 str。本文对比配置写法、返回类型和显式转换方法,并说明带时区日期时间的处理边界。
-
Python sqlite3 原生只认识有限的 SQLite 类型。本文用 Point 示例说明如何注册 register_adapter 写入自定义对象,再用 register_converter 与 detect_types 在查询时恢复对象,并列出声明类型、列名解析和版本兼容边界。
-
Python typing.TypeIs 可以把可复用的布尔判断接入类型收窄,并在 True 与 False 两个分支提供更精确的类型信息。本文从联合类型示例出发,说明安全写法、Python 版本导入、TypeGuard 对比和错误实现边界。
-
判断函数是否为 coroutine function,优先使用 inspect.iscoroutinefunction。本文区分 async def 函数、partial 包装、同步函数返回协程、async generator 与已经调用后的 coroutine 对象,避免把函数检查和结果检查混在一起。
-
Python asyncio.Queue 的 join 等待未完成计数归零,需要消费者逐条调用 task_done。通过 TaskGroup 与退出哨兵示例,区分队列清空、消费者退出和业务成功,并说明 Python 3.13+ shutdown 的迁移注意事项。
-
Python asyncio.timeout 会在截止时间到达时取消当前任务,并在上下文管理器退出时把 asyncio.CancelledError 转换为内置 TimeoutError。本文给出最小写法,再说明异常捕获位置、动态截止时间、expired 状态、嵌套超时和 wait_for 的区别。
-
asyncio.wait 配合 FIRST_COMPLETED 可以先拿到已经完成或被取消的任务,并把仍在运行的任务放进 pending 集合。本文说明如何读取结果、处理超时,以及为什么必须显式决定 pending 任务的后续生命周期。
-
Python 3.13 引入的 Path.from_uri 能解析 file URI;Python 3.14 进一步明确 authority 行为。本文用 UNC 示例说明 Windows 与非 Windows 的差异、绝对路径要求和兼容处理。
-
Java ZonedDateTime 遇到夏令时回拨时,同一个本地时间可能对应两个有效偏移。本文用 ZoneRules.getValidOffsets() 先判断重复,再用 withEarlierOffsetAtOverlap() 或 withLaterOffsetAtOverlap() 明确选择,最后将结果转换为 Instant 保存,避免账单、预约和审计记录出现歧义。
-
Java Optional 链式调用里,map 适合把当前值转换成普通值,flatMap 适合连接本身就返回 Optional 的查询。本文从返回类型入手,说明怎样避免 Optional>、怎样让空值传播保持清晰,以及在哪个边界收敛成默认值或异常。
-
Java Class-File API 可以直接读取 .class 文件模型,不必通过 Class.forName 加载目标类。本文从 ClassModel、MethodModel 到 CodeModel,演示如何按方法名枚举方法指令,并说明无方法体、惰性解析、版本兼容和 CodeElement 类型筛选边界。
-
用 Java HttpRequest.BodyPublishers.ofInputStream 延迟打开请求体,处理重复发送时重新提供 InputStream,以及文件流和 HttpClient 生命周期边界。