錯誤處理
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代表失敗) - 理論上可保留錯誤詳細資料,但目前在實際情況中並不需要。
- 傳回為布林值 (例如