改进: state_portal.rs 中 expect 应改为 bail! (state_portal.rs:165) #9
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
位置
src/state_portal.rs:163-173严重性
🟢 低
问题描述
main.rs虽然已校验output.is_none() && port == 0的组合,但在StatePortal::new被库代码或测试直接调用时,该expect会导致 panic 而非可恢复的错误。建议修复
改为
bail!以返回Result::Err,保持 API 的健壮性:修复方案
将 state_portal.rs 中两处 expect() 替换为 ok_or_else(..)? 错误传播,与函数返回类型 Result 及已有的 bail! 用法保持一致。
变更内容
1. webrtc_paused 解包(原第 167 行)
将 expect 改为 ok_or_else + ?,错误信息:internal invariant broken: webrtc_paused missing while WebRTC mode is active
2. output 解包(原第 184 行)
将 expect 改为 ok_or_else + ?,错误信息:--output is required in MP4 file output mode; use --port > 0 for WebRTC mode
验证
Commit:
d5679be