我是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)
提出错误,但你忽略了它.
非致命错误通常通过返回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书)
归档时间: |
|
查看次数: |
128 次 |
最近记录: |