19 个版本
0.3.1 | 2024年6月19日 |
---|---|
0.3.0 | 2023年2月23日 |
0.2.3 | 2021年1月14日 |
0.2.2 | 2020年8月16日 |
0.1.1 | 2016年3月24日 |
#237 在 Rust 模式
81,115 每月下载量
用于 118 个crate (88 直接)
20KB
220 行
simple-error
simple-error
是一个 Rust
库,它提供了一个基于 String
的简单 Error
类型。当您只关心错误字符串时,它是最合适的。
用法
要使用 simple-error
,首先在您的 Cargo.toml
中添加以下内容:
[dependencies]
simple-error = "0.3"
然后添加以下内容到您的crate根目录:
#[macro_use]
extern crate simple_error;
use simple_error::SimpleError;
或者如果您使用的是2018版或更高版本,您可以跳过 extern crate
并仅导入您使用的相关项。
现在您可以使用 simple-error
以不同的方式使用
您可以使用它作为一个简单的字符串错误类型
fn do_foo() -> Result<(), SimpleError> {
Err(SimpleError::new("cannot do foo"))
}
如果您只关心字符串描述,您可以使用它来替换所有错误类型
fn do_bar() -> Result<(), SimpleError> {
Err(SimpleError::from(std::io::Error(io::ErrorKind::Other, "oh no")))
}
或者您可以链接所有错误,并在顶层获取完整的错误描述
fn find_tv_remote() -> Result<(), SimpleError> {
try_with!(std::fs::File::open("remotefile"), "failed to open remote file");
Ok(())
}
fn turn_on_tv() -> Result<(), std::io::Error> {
Ok(())
}
fn watch_tv() -> Result<(), SimpleError> {
try_with!(find_tv_remote(), "tv remote not found");
try_with!(turn_on_tv(), "cannot turn on tv");
Ok(())
}
fn study() -> Result<(), SimpleError> {
Ok(())
}
fn run() -> Result<(), SimpleError> {
try_with!(study(), "cannot study");
try_with!(watch_tv(), "cannot watch tv");
Ok(())
}
fn main() {
if let Err(e) = run() {
println!("{}", e);
}
}
// This prints out "cannot watch tv, tv remote not found, failed to open remote file, Text file busy" if the error is text file busy.