访问Redis时出现无提示错误

har*_*rry 4 redis rust

我是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(())
}
Run Code Online (Sandbox Code Playgroud)

aoc*_*via 5

简短的回答

提出错误,但你忽略了它.

长的大雁

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

如果要处理错误,则应通过匹配结果类型来执行此操作.尝试将主要功能更改为以下内容:

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

另请参见:错误处理(Rust书)