我正在学习Rust,但找不到所有错误类型的列表。当函数返回结果
时,标准库是否有一组可用于使用的预定义错误?
我知道在Rust中可以制作自定义错误类型,那是解决方案吗?需要制作所有自定义错误类型吗?
我正在学习Rust,但找不到所有错误类型的列表。当函数返回结果
时,标准库是否有一组可用于使用的预定义错误?
我知道在Rust中可以制作自定义错误类型,那是解决方案吗?需要制作所有自定义错误类型吗?
Result::Err
使用的类型的列表”,答案仍然是否定的。有一些方法,例如slice::binary_search
,它们返回Result<usize, usize>
。 usize
应该被视为错误类型吗?如果Result::Err
完全在函数内部构造并且从未离开该函数,则该类型是否被认为是错误类型?如果一个通用类型包含Result<i32,E>
,那么任何具体的E
都应该被称为错误类型吗?如果您的意思是“是否有一个实现了std :: error :: Error
的所有类型的列表”,那么答案是“有点”。请参阅How can I get a list of structs that implement a particular trait in Rust?以获取详细信息。是的。
可供使用
有时候。io::Error
允许您构造自己的错误值,但 num::ParseIntError
不允许。
这是解决方案吗?将所有自定义错误类型都制作出来?
一般来说,是的。
另请参见:
标准库中经常会有结果类型的别名。如果您在标准库文档中看到一个函数,可以点击 Result
,这应该会带领您到别名类型(例如std::io::Result
)。
您可以查看 列表,其中包含了所有实现了 Error
特性的枚举和结构体的标准库。
Error
和Display
接口。但是,Result
允许使用任何类型作为错误类型,包括字符串和基本类型如i32
。 - Zefick