diff options
author | Sebastian Reichel <sre@ring0.de> | 2013-06-15 23:45:04 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@ring0.de> | 2013-06-15 23:45:04 +0200 |
commit | 732526bf459591c9abee5c5ae7e7759cce124f0b (patch) | |
tree | 72380066e25fcad5576a38dab27ff57ec8d14976 /src/scanner-session | |
parent | e020a26adcb2e08369d864d7d62bbef1316bf7d0 (diff) | |
download | serial-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.vala | 19 |
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); |