summaryrefslogtreecommitdiffstats
path: root/src/scanner-session
diff options
context:
space:
mode:
authorSebastian Reichel <sre@ring0.de>2013-06-15 23:45:04 +0200
committerSebastian Reichel <sre@ring0.de>2013-06-15 23:45:04 +0200
commit732526bf459591c9abee5c5ae7e7759cce124f0b (patch)
tree72380066e25fcad5576a38dab27ff57ec8d14976 /src/scanner-session
parente020a26adcb2e08369d864d7d62bbef1316bf7d0 (diff)
downloadserial-barcode-scanner-732526bf459591c9abee5c5ae7e7759cce124f0b.tar.bz2
handle DatabaseError in db.get_product_name
Diffstat (limited to 'src/scanner-session')
-rw-r--r--src/scanner-session/scannersession.vala19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/scanner-session/scannersession.vala b/src/scanner-session/scannersession.vala
index 9cc3e26..5498b83 100644
--- a/src/scanner-session/scannersession.vala
+++ b/src/scanner-session/scannersession.vala
@@ -161,7 +161,24 @@ public class ScannerSessionImplementation {
return false;
}
- var name = db.get_product_name(id);
+ string name = "unknown product";
+
+ try {
+ name = db.get_product_name(id);
+ } catch(IOError e) {
+ audio.play_user(theme, "error");
+ send_message(MessageType.ERROR, "Internal Error!");
+ return false;
+ } catch(DatabaseError e) {
+ if(e is DatabaseError.PRODUCT_NOT_FOUND) {
+ audio.play_user(theme, "error");
+ send_message(MessageType.ERROR, "Error: unknown product: %llu".printf(id));
+ } else {
+ audio.play_user(theme, "error");
+ send_message(MessageType.ERROR, "Error: %s", e.message);
+ }
+ return false;
+ }
if(!logged_in) {
var mprice = db.get_product_price(1, id);