#error #error-string #backed #description

simple-error

基于字符串的简单错误类型

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日

#237Rust 模式

Download history 10788/week @ 2024-05-04 14857/week @ 2024-05-11 13485/week @ 2024-05-18 11127/week @ 2024-05-25 13278/week @ 2024-06-01 11567/week @ 2024-06-08 13132/week @ 2024-06-15 14338/week @ 2024-06-22 14862/week @ 2024-06-29 16379/week @ 2024-07-06 18878/week @ 2024-07-13 19336/week @ 2024-07-20 20069/week @ 2024-07-27 19913/week @ 2024-08-03 21175/week @ 2024-08-10 17098/week @ 2024-08-17

81,115 每月下载量
用于 118 个crate (88 直接)

MIT/Apache

20KB
220

simple-error

crates.io Documentation Build Status Coverage Status MSRV

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.

无运行时依赖