From 7866e54e8d2ea3c723cbaf32eb53a878335de892 Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Tue, 8 Sep 2015 17:02:10 -0600 Subject: [PATCH] mq303a: throw exception(s) on fatal errors Signed-off-by: Jon Trulson Signed-off-by: Mihai Tudor Panu --- src/mq303a/mq303a.cxx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/mq303a/mq303a.cxx b/src/mq303a/mq303a.cxx index dda380e2..612ffd51 100644 --- a/src/mq303a/mq303a.cxx +++ b/src/mq303a/mq303a.cxx @@ -23,6 +23,8 @@ */ #include +#include +#include #include "mq303a.h" @@ -30,9 +32,19 @@ using namespace upm; MQ303A::MQ303A(int pin, int heaterPin) { - m_aio = mraa_aio_init(pin); + if ( !(m_aio = mraa_aio_init(pin)) ) + { + throw std::invalid_argument(std::string(__FUNCTION__) + + ": mraa_aio_init() failed, invalid pin?"); + return; + } - m_gpio = mraa_gpio_init(heaterPin); + if ( !(m_gpio = mraa_gpio_init(heaterPin)) ) + { + throw std::invalid_argument(std::string(__FUNCTION__) + + ": mraa_gpio_init() failed, invalid pin?"); + return; + } mraa_gpio_dir(m_gpio, MRAA_GPIO_OUT); }