error-handling - Rust 中有哪些不同的错误类型?
问题描述
我正在学习 Rust,但找不到所有错误类型的列表。当函数返回 aResult
时,标准库是否有一组预定义的错误可供使用?
我知道可以在 Rust 中创建自定义错误类型,这是解决方案吗?制作所有自定义错误类型?
解决方案
没有很好地定义“错误类型”的含义,所以不,没有全局错误列表。
如果您的意思是“是否存在所有用作 的类型的列表,Result::Err
答案仍然是否定的。有诸如slice::binary_search
which return之类的方法Result<usize, usize>
。是否usize
被视为错误类型?如果 aResult::Err
完全在函数内部构造并且从不离开它;那个类型被认为是错误类型吗?包含Result<i32, E>
; 的泛型类型应该E
被称为错误类型吗?
如果您的意思是“是否存在实现的所有类型的列表std::error::Error
,那么答案是“某种”。有关详细信息,请参阅如何获取在 Rust 中实现特定特征的结构列表?
标准库是否有一组预定义的错误
是的。
可供使用
有时。io::Error
允许您构建自己的错误值,但num::ParseIntError
不允许。
那是解决方案吗?制作所有自定义错误类型?
一般来说,是的。
也可以看看:
推荐阅读
- javascript - 电子应用程序未关闭
- symfony - 数据库架构与当前映射文件不同步
- typo3 - 迁移到 TYPO3 9+ 后继续重定向旧的 realurl url
- python - 什么函数取代了networkx中的bipartite_configuration_model?
- text-files - 过滤从txt文件加载到stringgrid的数据
- kotlin - Hilt Activity 必须附加到 @AndroidEntryPoint 应用程序
- php - 如何根据多个 whereHas 条件获取用户 Laravel
- stm32 - IAR Workbench:“HAL_SPI_Init”错误没有定义
- php - 如何在 Laravel 上使用 eloquent 执行多表选择
- flutter - 如何使用 charts_flutter 包向条形图中的各个条形添加点击功能