錯誤處理
CXX 的 Result<T,E>
支援功能依賴 C++ 例外狀況,因此無法用於 Chromium。替代方案:
-
Result<T, E>
的T
部分可以是以下情形之一:- 可透過傳出參數傳回,例如透過
&mut T
。也就是說,T
必須能跨越 FFI 界線傳遞,例如T
必須符合下列條件:- 是基本型別 (例如
u32
或usize
) - 是
cxx
原生支援的型別 (就像UniquePtr<T>
),具有可在失敗情況下使用的適當預設值 (「不像」Box<T>
)。
- 是基本型別 (例如
- 在 Rust 端保留,並透過參照公開。當
T
是 Rust 型別,無法跨越 FFI 邊界傳遞,且無法儲存在UniquePtr<T>
時,這就可能有必要。
- 可透過傳出參數傳回,例如透過
-
Result<T, E>
的E
部分可以是以下情形之一:- 傳回為布林值 (例如
true
代表成功,false
代表失敗) - 理論上可保留錯誤詳細資料,但目前在實際情況中並不需要。
- 傳回為布林值 (例如