一尘不染

访问Redis时出现无提示错误

redis

我是Rust的新手。我正在使用板条箱,redis = "0.3.1"但该程序只是退出而没有引起恐慌。我要做的唯一不同就是数据库不同。

extern crate redis;

use redis::*;
use std::string::String;
use std::collections::HashSet;

fn main() {
    read_meta_keys_redis("myset".to_string());
}

fn read_meta_keys_redis(key: String) -> redis::RedisResult<()> {
    println!("22{}", key);
    let client = try!(redis::Client::open("redis://127.0.0.1:6379/2"));

    let con = try!(client.get_connection());
    let mems: HashSet<i32> = try!(con.smembers(key));
    for x in mems.iter() {
        println!("op-->{}", x);
    }
    Ok(())
}

阅读 267

收藏
2020-06-20

共1个答案

一尘不染

简短答案

引发了错误,但是您忽略了它。

长an

非致命错误通常通过返回来传播Result,因此调用方可以处理该错误。紧急情况通常用于发生不可恢复的错误,并将中止当前线程。在这种情况下,redis库使用该RedisResult类型,它是的别名Result<T, RedisError>

如果要处理错误,则应通过匹配结果类型来进行。尝试将您的主要功能更改为以下内容:

fn main() {
    if let Err(e) = read_meta_keys_redis("myset".to_string()) {
        println!("{}", e.description());
    }
}

另请参阅:错误处理(The Rust Book)

2020-06-20