From 5c4086bf8ef637bd369c501f439131527c4afc45 Mon Sep 17 00:00:00 2001 From: debris Date: Fri, 15 Apr 2016 19:32:30 +0200 Subject: [PATCH] log errors when db queries fails --- ethcore/src/db.rs | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/ethcore/src/db.rs b/ethcore/src/db.rs index 3ef3763af..23e2d74d1 100644 --- a/ethcore/src/db.rs +++ b/ethcore/src/db.rs @@ -41,21 +41,33 @@ pub trait Readable { impl Writable for DBTransaction { fn write(&self, key: &Key, value: &T) where T: Encodable { - self.put(&key.key(), &encode(value)) - .expect("db put failed"); + let result = self.put(&key.key(), &encode(value)); + if let Err(err) = result { + panic!("db put failed, key: {:?}, err: {:?}", key.key(), err); + } } } impl Readable for Database { fn read(&self, key: &Key) -> Option where T: Decodable { - self.get(&key.key()) - .expect("db get failed") - .map(|v| decode(&v)) + let result = self.get(&key.key()); + + match result { + Ok(option) => option.map(|v| decode(&v)), + Err(err) => { + panic!("db get failed, key: {:?}, err: {:?}", key.key(), err); + } + } } fn exists(&self, key: &Key) -> bool { - self.get(&key.key()) - .expect("db get failed") - .is_some() + let result = self.get(&key.key()); + + match result { + Ok(v) => v.is_some(), + Err(err) => { + panic!("db get failed, key: {:?}, err: {:?}", key.key(), err); + } + } } }