首页 > 解决方案 > Rust 中有哪些不同的错误类型?

问题描述

我正在学习 Rust,但找不到所有错误类型的列表。当函数返回 aResult时,标准库是否有一组预定义的错误可供使用?

我知道可以在 Rust 中创建自定义错误类型,这是解决方案吗?制作所有自定义错误类型?

标签: error-handlingrust

解决方案


没有很好地定义“错误类型”的含义,所以不,没有全局错误列表。

如果您的意思是“是否存在所有用作 的类型的列表,Result::Err答案仍然是否定的。有诸如slice::binary_searchwhich return之类的方法Result<usize, usize>。是否usize被视为错误类型?如果 aResult::Err完全在函数内部构造并且从不离开它;那个类型被认为是错误类型吗?包含Result<i32, E>; 的泛型类型应该E被称为错误类型吗?

如果您的意思是“是否存在实现的所有类型的列表std::error::Error,那么答案是“某种”。有关详细信息,请参阅如何获取在 Rust 中实现特定特征的结构列表?

标准库是否有一组预定义的错误

是的。

可供使用

有时。io::Error允许您构建自己的错误值,但num::ParseIntError不允许。

那是解决方案吗?制作所有自定义错误类型?

一般来说,是的。

也可以看看:


推荐阅读